почему такая большая разница?
Каждый имеет свою стандартную библиотеку и какой-то свой рантайм, которые весят не ноль.
В случае хаскеля, он собой ещё тащит GC.
+ Компилятор в разной степени может наоптимизировать твой код.
Как уже сказали выше - минимальный размер тебе дадут машинные коды (или же ассемблер), если ты будешь писать код прямо на них. В зависимости от ОС и архитектуры, простая программа может занимать считанные сотни байт (если не десятки).
Если смотреть на компилируемые языки чуть более высокого уровня, то самый компактный выхлоп дают C, C++, и Rust, в зависимости от настроек компилятора, подключаемых библиотек, и используемых фич.
В целом - 11 мегабайт даже для консольной утилиты сейчас копейки.