The machine may not be ancient but I would still argue that the problem there is the ~10 year old version of Bash that Apple has decided to ship rather than the programmers that use features added to the shell within the last 10 years.
(I should add that I don't know what version High Sierra ships with but Sierra seemed to ship with 3.2.5x-ish which was 9 years old at the time.)
You can assume everyone has a modern bash, and make it the end users problem if they don't, or you can write portable shell scripts and know it will work.
Honestly the things you can't do in posix shell compared to bash border on "use a fully featured language" anyway.
Thing is that Bash is something you can assume to be reasonably widely available[0] — like Perl or Python — but I wouldn't expect to have to avoid any features from the last 10 years of either of those two. Sure, a certain grace period is to be expected but I think 10 years is way past that.
How do you write a portable shell script? The programs invoked by your shell script need to behave the same everywhere. Even fundamental things like cp, rm, etc. don’t universally behave the same across the various Unix and Unix-like systems.
The joke is that your shell is actually more portable than your shell script :)
Most of the shell utilities described by posix have standard flags, and then gnu/bsd extra flags.
If you use the standard ones (and use the "posix mode" flags when available) you're mostly ok.
Also, a shell script can have logic to handle different tools available (either different flavours of the same tool or even different tools that do similar things).
If the basic syntax it uses (or the shebang) are bash specific then you need bash to run it.
(I should add that I don't know what version High Sierra ships with but Sierra seemed to ship with 3.2.5x-ish which was 9 years old at the time.)