Este é um comportamento normal e padrão: se a globbing não corresponder a nenhum arquivo / diretório, o caractere globbing original será preservado.
Se você quiser retornar um resultado vazio, defina a opção nullglob
em seu script da seguinte forma:
$ shopt -s nullglob
$ for f in "$my_dir"*."$ext"; do echo $f; done
$
Você pode desativá-lo depois com:
$ shopt -u nullglob