As I remember it, this is the whole reason OS X became the de facto standard for developers in the first place, consumer-grade windowing and device drivers coupled with a familiar development environment.
zsh has replaced bash as the default shell, btw.
macOS has a 12+ year old bash. Also, even with Homebrew patching up Apple's neglect, coreutils behaves differently under a Darwin kernel than Linux. A repeat source of aggravation for myself is the behavior of 'ps'.
And yeah, they suck a lot[1], but there's a way to fix if you use Homebrew: https://stackoverflow.com/a/57973942/8280773
[1] Performance-wise and also when you take into account that most shell scripts/tutorials on the internet are written with a GNU userland in mind.