Bash with a #!/bin/bash shebang. Typical GNU cultural imperialism. "Everyone has a Bash and it's always kept in /bin."
Without just using #!/bin/sh (or some trick with env that may also not be portable), then having a large fancy function to test for current shell identity and tries to search for & respawn with something else if that does not seem to be suitably compatible?
The project has bash on its name - it is not as if it is pretending to be more generic, or written by someone who has always had bash linked from /bin/sh and knows no better.
#!/usr/bin/env bash