Поднятый ответ резко неверен, я должен опубликовать ответ. Кто-то не прав в Интернете, пока не может лечь спать.
Это удобно, но не бесплатно. Компилятор должен сгенерировать класс для анонимного метода, а JIT-компилятор должен сгенерировать код для него. И этот код всегда выполняется при возникновении события независимо от того, подписан ли клиент обработчиком события. Нулевой проверочный код также всегда выполняется, но это занимает гораздо меньше времени и кода.
Это не много кода и много времени. Нулевая проверка занимает 2 инструкции машинного кода и должна выполняться за один цикл ЦП. Анонимному делегату требуется на порядок больше, но это не так уж много на современном компьютере. Лично я слишком стар, чтобы быть таким расточительным, два неизменно мой выбор.
Не в последнюю очередь, потому что это стандартный шаблон, все его признают.