Эти две вещи принципиально отличаются . Первое - это поле типа делегата, а второе - метод. Самое маленькое различие, о котором я могу подумать, это то, что вы можете динамически изменять первый во время выполнения и назначать для него ссылку на другой метод, пока исправлен второй.
Обычно вам не следует отдавать предпочтение первому, а не второму, если ваша цель - написать простой метод для класса в C #.
Пример, который делает первый чрезвычайно хрупким:
var c = new SomeClass();
c.SampleMethod = inputParam => inputParam.ToLower();
c.DoSomeTaskThatReliesOnSampleMethodReturningAnUpperCaseString();
c.SampleMethod = null;
c.DoSomeTaskThatCallsSampleMethod(); // NullReferenceException
Этот стиль программирования распространен в языке, таком как Javascript, где объект - это динамически существо, построенное на простом словаре.