I write a lot of bootstrapping scripts, and I have a solution. It’s not different from the soltuion you want because it’s easier, but rather its different because I believe it has to be different in order to do anything reliably.
As another person said, shells are not nearly as standardized as we need them to be. Mac uses zsh, Ubuntu uses dash, neither store a posix bash exectuable in the same place, and both have ls and grep differences that are big enough to crash common scripts. Even if you’re super strict on POSIX compliance, common things will still break.
However, you can make a single script that does it all without making any problematic assumptions. I hate JS as much as the next guy, but its possible to write a single text file that is valid bash/dash/zsh/powershell and valid JavaScript all at the same time. It sounds impossible, but there is enough overlapping syntax that actually any javascript program can be converted into a valid bash script without mangling the JS code. It might be possible to do for python as well.
From there, we can use a small amount of bash/powershell code at the top to ensure that the JS runtime you want is installed (auto install if missing). Then the script executes itself again using that runtime. It wasn’t easy but I a made a library that explains how it’s possible and gives a cli tool for doing it with the Deno runtime.
github.com/jeff-hykin/deno-guillotine
From there I just recreated tools that feel like bash, but this time the tools actually were cross platform. Ex:
let argWithSpaces = "some thing"
run`echo hello ${argWithSpaces}`
I picked Deno because it auto installs libraries (imports directly from URL so users don’t have to install anything)