Você executou set -f
anteriormente no script, o que desativa a expansão de curingas ou não há arquivos correspondentes. Se não houver arquivos correspondentes, o padrão será mantido inalterado, portanto, o loop for será executado em um elemento que é o padrão inalterado. No bash, você pode usar shopt -s nullglob
para fazer com que padrões não correspondentes sejam expandidos para a lista vazia.