Во-первых, вы, вероятно, не должны помещать много кода в анонимный метод. Это было бы более читабельно, если бы вы создали отдельный метод для этого или, что еще лучше, несколько методов.
Что касается сгенерированного IL, если лямбда не закрывается по каким-либо переменным, то сгенерированный IL-код такой же, как если бы вы поместили код в метод с обычным именем (за исключением того, что сгенерированный метод имеет невыразимое имя).
С другой стороны, если вы закрываете некоторую переменную, компилятор создает класс замыкания для хранения этой переменной в поле. И доступ к полю немного дороже, чем доступ к локальной переменной.
Подводя итог, если вы закрываете некоторые переменные, это приводит к небольшим накладным расходам (включая дополнительные объекты, которые необходимо собирать мусором). В большинстве случаев это не имеет значения, и беспокоиться об этом будет преждевременная оптимизация. Но если вы считаете, что это имеет значение, вам следует профилировать код.