The manual states that (run should be used to invoke a program but on Unix this will include scripts which are marked as executable.
This is not portable - Dune should display a warning in this case (cf. ocaml/opam#3350 where opam install warns if a shell script is installed to bin on Windows). The suggestion should be to invoke the script processor directly.
Dune could also be extended to understand #! scripts (opam has this too proposed in ocaml/opam#3348), but the warning should remain.
cf. ocaml-ppx/ocamlformat#448