ForeignKey это сущность БД, и только. RelationShip это сущность SQLAlchemy. Исходя из этого, можно понять, что в это разница ))))
ForeignKey - Ограничивает от вставки в поле иных ключей, от которых оно зависит по ForeignKey с другой таблицей.
RelationShip - просто удобная ORM фича, позволяет устраивает межтабличные отношения на уровне объектов SQLAlchemy, никак не влияет на БД, работает в своей области, в контексте SQLAlchemy.