Yes, there are differences.
These three modals refer to deontic obligation of various varieties.
Like all modals, they're used in many idioms, all irregular.
And they have different syntax, too.
There have been many dissertations written about modals and necessity/obligation,
so I won't belabor the point here. Well, I'll try, anyway.
Must and should are modal auxiliary verbs, and contrast in their deontic sense in the strength
(and often in the source) of the obligation.
Must is stronger; it's used in orders.
Should is weaker; it's used in advice.
Plus, quite often, must obligations come from outside (fate, weather, boss, parents, mullah -- somebody or something who or which can enforce the order), while should obligations come from your own conscience, or from people who seem to care about you.
Have to is a modal paraphrase (also called periphrastic modals, which is "paraphrase" in Greek),
(Ought to is a modal paraphrase of should. I won't deal with it here.)
Modal paraphrases come in handy in English when we need a past tense or a negative in the sentence, because modal auxiliary verbs have very limited syntax -- they require all negatives to follow them, and they are not inflected for tense.
- He has to leave now. = He must leave now.
Normally, in the present and in the affirmative, they're identical.
But with a negative, there are two possibilities
- He doesn't have to leave. ≠ He must not leave.
The first one means he has no obligation to leave,
but the second means he has an obligation not to leave; i.e, he must stay.
And with a past obligation, the auxiliary verb just won't stretch.
- He had to leave at 4pm. ≠ **He musted leave at 4pm.*