There is a BIG difference.
Lets take the following script called testscript (configured to use /bin/ksh as you see in the hashbang):
First lets execute it with ./:
exe: symbolic link to /bin/ksh93
Now calling bash:
$ bash testscript
exe: symbolic link to /bin/bash
Do you see the difference? The interpreter used by the script changed in the second command, so if the script depends in some ksh specific code it will be broken, and in other way if the scripts depends on bash specific code, then will broke it with the first command.
Other test you can do is to echo $PATH in the two different cases of execution.