fish, the friendly interactive shell, is a commandline shell intended to be interactive and user-friendly.
fish is intentionally not fully POSIX compliant, it aims at addressing POSIX inconsistencies (as perceived by the creators) with a simplified or a different syntax. This means that even simple POSIX compliant scripts may require some significant adaptation or even full rewriting to run with fish.
That’s why there is that shebang thingie in first line. Distributions like Debian use an entire different shell from bash for scripts: https://manpages.debian.org/buster/dash/dash.1.en.html