Я думаю, что семантически они очень разные, интерфейс IComparer позволяет вам определять, как ваш тип сортируется естественным образом, OrderBy дает вам возможность сортировать ваши объекты по некоторому определенному ключу, например, по заданному списку объектов Person, для запроса A sortсписок по имени, для запроса B сортируйте список по возрасту.
LINQ дает вам больше гибкости, но для OrderBy требуется Func, который принимает ваш тип объекта и возвращает ключ для использования.для сортировки, любой ключ, который вы вернете, все равно потребуется для реализации интерфейса IComparer.
С точки зрения производительности в большом списке, в зависимости от того, что вы делаете в методе сравнения, разница междуя могу представить себе два подхода, хотя лучше всего проверить это на свой тип.