Там нужно как-то очень ловко совмещать сущности разной степени строгости.
С одной стороны, да, часто хочется объектов, без парсинга, без вылетов и с Хаскельной надёжностью. С другой стороны, интерактивная оболочка работает и в условиях, когда данные очень грязные - часто пишем какой-нибудь "grep тра-ля-ля xxx.log", а выхлопом являются как строки, которые нам нужны, так и шум, который мы отфильтровываем глазами - так быстрее, чем писать программу, выдающую те и только те данные, что нам нужны.
То есть, от интерпретатора командной строки требуется работа сразу на нескольких разных уровнях строгости - системные скрипты из /etc/init.d должны быть абсолютно надёжны, пользовательские - средне, интерактив - напиши и забудь. Наиболее близкое к этому, кажется gradual typing.
Так программа под nushell может возвращать структурированные данные и в то же время печатать произвольные данные в консоль в интерактивном режиме. Тот факт, что в классических шеллах эти потоки совмещены - просто исторически закрепившийся косяк архитектуры