В последних версиях SQL-сервера планы выполнения кэшируются для хранимых процедур и параметризованных запросов. Для создания плана выполнения запрос будет стоить один раз, но он будет очень незначительным и будет потерян из-за накладных расходов даже при нескольких вызовах.
С точки зрения производительности они будут практически идентичны.
Исключением из этого является случай, когда вы выполняете рекурсивные или вложенные запросы (для каждой строки в запросе 1 выполните запрос 2), где сложатся циклы между клиентом и сервером. В этом случае процесс будет намного лучше.
Во многих компаниях все еще действуют правила «Все как процесс», но это обычно происходит из-за контроля над базой данных, а не из-за производительности. По мере роста популярности LINQ это может уменьшиться.
Если ваше приложение имеет одну (или несколько) точек развертывания, используйте любую, какую пожелаете. С другой стороны, если вы развертываете много разных установок, в некоторых (но не во всех) случаях хранимые процедуры могут обновлять функциональность базы данных без повторного развертывания кода клиента.