Termux-exec ignores missing permissions of a file. It allows files that don't have executive permissions to be executed anyway. This only happens when the file has a shebang that requires termux-exec. Normal termux-shebangs still give the correct 'permission denied'.
$ cat test.sh
#!/bin/sh
echo Hello World
$ ./test.sh
Hello World
$ chmod -x test.sh
$ ./test.sh
Hello World
$ ls -l test.sh
-rw------- 1 u0_a401 u0_a401 27 Sep 28 10:48 test.sh
$ termux-fix-shebang test.sh
$ ./test.sh
zsh: permission denied: ./test.s