Нет, скорей это полноценные языки программирования с динамической
типизацией. С command.com от микрософта сравнивать вообще
бессмыленно -- последний какая-то кривая паделка. cmd.exe получше,
но тоже страшен. Реальная микрософтовская альтернатива --
PowerShell. Можно сравнить command.com и bash, но последний много
мощней и является как раз больше не универсальным языком
программирования, а shell-языком, подходящим для написания
"батников" или работы из консоли. Для обычного программирования он же наоборот неудобен -- многих вещей нет.
Из обычного языка шелл так просто не получится -- и функции специфические нужны, и грамматика специфическая, иначе пользоваться будет невозможно. Написать "батник" на баше много проще, чем на питоне (на последнем придётся массу вещей делать вручную, особенно перенаправление ввода-вывода, куча кода). Единственный язык который худо-бедно годится в роли shell, из всех перечисленных "скриптовой нечисти" -- это Tcl. Поэтому его так и любят везде пихать для автоматизации. Хотя именно в качестве shell специализированные языки (bash, zsh, ash, sash, dash, tcsh, fish...) удобнее. И кстати это причина, почему PowerShell толком не взлетел, по-моему. Он больше уже полноценный язык программирования, но для работы из командной строки или простых батников cmd.exe -- удобнее...
Для perl делался в своё время psh (perl shell) но популярности не снискал. Да вообще в любом скриптовом языке обычно есть REPL-цикл (ввода и интерпретации команд). По идее это почти шелл, но набор функций шелла обычно отличается от языка программирования и наоборот, на шелле сложные программы программировать неудобно. Поэтому такое разделение.
В шелле важны функции управления (параллельными) задачами, перенаправление ввода-вывода и аргументов команд, обработка ошибок... вообще всю работу в шелле обычно выполняют внешние вызываемые программы и задача шелла -- согласованно их вызывать. В обычном языке программирования же всё наоборот, обычно всё делается средствами языка, а вызов внешней программы превращается в большую сложность. Список встроенных команд/функций самого шелла обычно очень небольшой. Для того, чтоб посчитать арифметическое выражение может быть даже придётся вызвать внешнюю программу-калькулятор (expr, dc, bc...) Зато у шелла достаточно сложная грамматика позволяющая легко делать специфические вещи требующие массы кода в обычном языке. В общем шелл -- это специализированный язык для управления компьютером и программами на компьютере.