Оба глагола относятся к группе модальных и означают «должен, следовало бы». Отличия в значении этих глаголов незначительны:
ought to используется, когда необходимо сделать что-то в силу правил или моральных норм, а should относится к здравому смыслу
I think she ought to apologize to her parents
Я думаю, она должна извиниться перед родителями
Нравственный долг
Tom has been eating too much recently. He should eat less.
Том в последнее время слишком много ест. Он должен меньше есть.
Здравый смысл
В современном английском языке эта разница в значении почти исчезла, и вместо ought to чаще употребляется should.