両方とも一般的に「〜をしなければいけない」と言うような意味を持ちますが、「should」の場合、話し手が大切だと思っており、「するべき」と言うような提案であり、任意であるニュアンスが伝わります。「Supposed to」は、話し手に限らず、他の人も大切(必要)だと思っており、「するはず」だと言う義務であるニュアンスが伝わります。
John should do his homework.
Johnは宿題をするべきである。
※話し手は、Johnが宿題をしなければいけないと思っているが、彼には別にそうする義務はない
John is supposed to do his homework.
Johnは宿題をするはずである。
※話し手に限らず、他の人もJohnが宿題をしなければいけないと思っており、彼にはそうする義務がある
過去に振り返って、「するべきであった」または、「するはずだった」と言いたい場合は、以下のようになります。
John should have done his homework.
Johnは宿題をするべきであった。(しておけばよかった。)
John was supposed to do his homework.
Johnは宿題をするはずだった。(しなければいけなかった。)
難易度:3/10
関連リンク:「Want」と「 need」の違いは何ですか?