потому что объяснение монады из теории типов - это херня. А вот объяснение "сморите, теперь вы можете писать async/await и избавиться от коллбеков" - это полезное практическое объяснение
Давайте я попробую объяснить почему объяснения типа "смотрите, теперь вы можете писать бла-бла-бла" - это хуйня, а теория типов - намного практичнее. Серьёзно, без наездов и обзывательств.
Есть два уровня - синтаксические конструкции, которые мы пишем на языке программирования, и структуры, которые они описывают. Не в смысле структур данных (хотя и это тоже), а в смысле сущностей, связей между ними, правил взаимодействия и ограничений. В ООП некоторые из таких структур называют "паттернами проектирования", и именно поэтому упорно талдычут, что паттерны не зависят от конкретного языка и так далее.
Так вот, в Haskell для описания таких структур ("паттернов", отношений между сущностями и правил их взаимодействия) часто используют алгебраические (в смысле "абстрактной" или "высшей" алгебры) структуры: кольца, моноиды, функторы, да, монады, и ещё кое-какие. Преимущество алгебраических структур над "паттернами проектирования" в том, что они подчиняются определённым законам, гарантирующим их корректность. Преимущество теории типов и статической проверки типов - в гарантированном выполнении таких законов.
Таким образом, использование корректных (sound) с точки зрения теории типов/теории категорий структур и механизмов обеспечивает корректное (ожидаемое, доказуемое) поведение программы, независимо от того синтаксиса, который используется. Для традиционного кода верно правило "меньше кода - меньше ошибок", поэтому многие программисты так любят "лаконичный синтаксис", но при использовании алгебраических структур и статической проверки их свойств количество ошибок не зависит от количества строк кода. Поэтому многие функциональные программисты любят языки с зависимыми типами, несмотря на то, что писать на них приходится больше.