Контракт Equals отличается от контракта IStructuralEquatable тем, что он указывает, равны ли логически 2 объекта.
По умолчанию значение Equals для ссылочного типа указывает, ссылаются ли две ссылки на один и тот же экземпляр объекта. Однако вы можете переопределить Equals в соответствии с логикой вашего приложения.
В качестве примера может иметь смысл считать равными два разных экземпляра класса Employee, если они оба представляют одну и ту же сущность в вашей системе. Для этого объекты сотрудников с соответствующими свойствами SSN будут рассматриваться как логически равные, даже если они не являются структурно равными.