Well, "should" is less definite than "must".
For example, the other day my colleague got injured. I said to her, "You
should go to the doctor". I could also have said, "You
must go to the doctor". The two sentences have slightly different meanings. The first one, using
should, is me giving my opinion. Of course, this can also be used in giving a definite order as well - if my manager says to me, "You should do such-and-such", it would look bad for me if I refused outright! (Although of course I could always debate it! ;-)) But
in general, "should" is more often used in the kind of sentence like, "Ahh, you
should go to the doctor / buy one / give 'em hell / whatever" - in other words, someone telling you what they
think you should do. Whereas if they say "must", they are
telling you to do something (regardless of whether they are your manager or what!). For instance, if someone says to you, "You
must move your chair from where it's obstructing the walkway", or "You
must keep your desk top tidy", they are telling you that you
have to do it (no doubt you could disobey, but you could expect consequences / implications later).
With that in mind, it can be seen that "must" is a very definite word. Therefore it fits and makes sense in the sentences you gave in your example, where "should" does not. For instance, "That
must have hurt", meaning something like "There is no way that could have
not hurt!" (<-- we would use that form only rarely, for special emphasis, because it is rather awkward-sounding). In other words, it's imperative that it
did hurt - it
must have hurt!
If we said "That should have hurt", it means something different - it means that whatever it was
should have hurt, but in fact it didn't!
I hope that makes some sense!