Разница между should и have to при выражении обязательств заключается в оттенках значения. 15
Have to обозначает более строгую или обязательную необходимость, которая обусловлена внешними обстоятельствами или авторитетом, а не личным выбором. 1 На русский язык его можно перевести как «должен», «обязан», «вынужден». 4 Примеры: «I have to go to work tomorrow» — «Я должен пойти на работу завтра», «She has to study for her exams» — «Ей нужно готовиться к экзаменам». 1
Should, в свою очередь, выражает рекомендацию или совет, но это более субъективное выражение, которое подчёркивает желательность или правильность действия. 1 На русский язык should можно перевести как «следует», «стоит», «нужно». 4 Примеры: «You should eat more vegetables» — «Тебе следует есть больше овощей», «We should be kind to others» — «Мы должны быть добрыми к другим». 1
При этом в некоторых ситуациях have to и should могут использоваться вместе, чтобы подчеркнуть как обязательность, так и желательность действия. 1