O comando for ... in *.bak procura apenas o diretório atual.
Você deseja usar o comando find , que pesquisa recursivamente. Este comando localizará todos os arquivos zip começando com um ponto a qualquer profundidade no diretório atual ( . ).
find . -iname '.*.zip'
Remover o ponto inicial é um pouco complicado. O seguinte parece funcionar (mas pode ter casos de borda, caveat emptor).
for f in $(find -iname '.*.zip'); do f2=$(echo $f | sed -re 's/(.*)\/\.(.*)/\//'); echo $f $f2; done
Isso imprimirá todas as operações que ele executaria ( echo $f $f2 ), se essa lista parecer correta, altere-a para mv $f $f2 e ela fará as renomeações.