Вы в then в любом случае передаёте функцию.
В первом случае, эта функция:
result => alert(result)
Во втором просто:
alert
Проще пронять на переменных, мне кажется. Если вы функцию из первого примера передадите в переменную и скормите then всё точно так же сработает:
const func = result => alert(result);
let promise = new Promise(resolve => resolve('Done!')).then(func) //Выполнится func
Смысл в том, что во всех трёх случаях вы передаёте аргументом в then функцию которая принимает 1 аргумент (результат) и что-то с ним делает: передаёт в alert или выводит диалоговое окно сразу, разницы нет.