Hey there! This one could be hard because they have a very similar translation. The biggest difference between the two is the nuance. They both are used for assumptions, but まい has a stronger nuance of ‘probably not…’. まい is often used when the speaker is not so certain or confident about something. In contrast to this, はずがない is used when the speaker is more confident about their assumption.
For example:
もう失敗するまい。‘I intend not to fail again.’ The nuance this has is ‘I don’t intend to fail again, but I might fail.’ (Very little confidence)
もう失敗するはずがない。‘It is very unlikely that I will fail again.’ When はずがない is used, it shows that the speaker is very confident that they would not fail again, but at the same time, not dismissing the fact that they might fail.
I hope that this explanation helps you understand the difference!