両方とも日本語に訳すと「〜をしなければいけない」と言う意味になりますが、義務感・責任感がどこからくるのか(自主的なのか、外部からの期待によるものなのか)によって使い分けます。
① 「Must」は、話し手自身が必要性・義務を感じている時に使います。つまり、話し手の意見や考えが反映されます。
I must use this coupon before it expires.
私はこのクーポン(の有効期限)が切れる前に使わなければいけない。
(話し手である「私」自身がこのクーポンを使わなければ損をすると考えている。)
You must come visit us more often.
あなたはもっと頻繁に私たちに会いに来なければなりません。
(話し手が、「あなた」に対して「もっと会いに来なければならない」と自身の意見を言っている。
② 「Have to」は、話し手が他の人・事の影響により必要性・義務があると感じている時に使われます。つまり、他の人の意見、別の物事に影響されていることを意味します。
I have to clean my room.
わたしは部屋の掃除をしなければならない。
(話し手である「私」は部屋の掃除をする必要はないと思っているが、親にするよう言われている。)
You have to pass tomorrow’s exam to graduate.
あなたが卒業するには、明日の試験に合格しなければいけません。
(話し手が、「あなた」に対して、卒業するための条件として「試験に合格すること」が必要であると、学校の規則(外部の影響)の視点から話しています。
難易度:6/10
関連リンク:「Should」と「supposed to」の違いは何ですか?