Earlier quoted context omitted.
Just to clarify, Bash is installed under /usr/local because it’s from packages and not part of the base system. The base shell, ksh, is at /bin/ksh. You probably know that but I just felt like being pedantic this morning :).
Yes, absolutely true. The idea is that `ksh` is good enough , and the extra features of bash are extraneous or unnecessary, making it an add-on rather than a core feature. It's an interesting idea, and while I feel bash is absolutely 'good enough' to be part of the base system, I wouldn't want zsh or fish part of my base system - so it's then a matter of opinion whose shell is bloat and whose is essential. So I respe…
$ ls -l /bin/bash /bin/dash /bin/mksh
-rwxr-xr-x. 1 root root 964536 Nov 22 2019 /bin/bash
-rwxr-xr-x. 1 root root 113536 Nov 5 2018 /bin/dash
-rwxr-xr-x. 1 root root 296192 Jan 27 2018 /bin/mksh
The Debian Almquist shell has nearly nothing beyond POSIX (I believe that local function variables are the only extension). This is the Ubuntu system shell, and it tolerates no bashisms. Alternate POSIX shell implementations in OCaml (and somewhat ADA) accuse Almquist of not using formal grammars and imply that dash is not a safe implementation.https://www.irif.fr/_media/rencontres/pps2018/regis-gianas.p...
I would say that mksh implements 80% of bash functionality in much less space, and closely follows ksh88; mksh is also licensed such that Android uses it as /bin/sh.
Apple has switched from bash to zsh. I don't know the motivations for this, but preferences for shells wax and wane. BSD doesn't include bash (in base) more because of license than code quality.
POSIX seems to be all that we can agree on, but I do wish that standard could grow; it's stuck in the '70s.