You can't do that.
You can check its source code:
execve(actual_cmd, argv, envv);
err = errno;
// Something went wrong with execve, check for a ":", and run /bin/sh if encountered. This is a
// weird predecessor to the shebang that is still sometimes used since it is supported on
// Windows. OK to not use CLO_EXEC here because this is called after fork and the file is
// immediately closed.
Notice how its using `execve` (not `execvp` or `execlp`, which have a fall-back to `/bin/sh path` in case of `ENOEXEC`) and it will only run the script with `/bin/sh` if it starts with `:` (itself quite a dubious feature; especially since `fish` will also use it in the case of errors other than `ENOEXEC`).
But if you can edit the script to add a `:` at the beginning, you can just as well edit it to add a proper she-bang.