The `preferences->tools->terminal` command is the one used to run programs (`build->execute`) in a terminal emulator application (ie one that shows a window on the screen) so any messages are visible. As its a terminal `bash` is not applicable, for eg the default on Linux is `xterm`.
The script `geany-run-helper.bat` is what is passed as the command (ie the %c in `tools->terminal`) with arguments specifying the directory to run in, if the terminal should autoclose when the program exits or keep the terminal open so the user can read error messages, and the command to run. So any replacement for `cmd.exe` must interpret `.bat` scripts or `geany-run-helper.bat` needs to be re-written to an alternate interpreter. This is left as an exercise for the reader.
For hysterical (sorry that should read historical) reasons on Linux a new temporary "sh" run script is written every execute so there is no Linux equivalent of `geany-run-helper.bat`.
Macos is a whole 'nother world, we won't talk about it.