./myscript runs myscript com qualquer intérprete especificado no shebang. myscript precisa ter o bit executável definido.
bash ./myscript corre myscript com o bash. myscript não precisa ser executável, e como o bash recebe um arquivo para ser executado, ele nem está procurando por ele no PATH, então bash myscript funcionará tão bem.
bash -c "./myscript" inicia uma instância do bash para executar um comando, o que acontece para fazê-lo executar ./myscript com qualquer interpretador especificado no shebang (portanto, é semelhante ao primeiro caso, com um processo bash adicionado). O argumento para bash -c é qualquer comando bash ou sequência de comandos (tente bash -c "echo 'aa';echo 'bb'" ).
E você não mencionou . ./myscript