--exclude-dir não substitui a necessidade de listar arquivos na linha de comando. Você está "pendurado" porque grep está aguardando a entrada padrão.
grep -l -e 'foo' --exclude-dir=".svn" *
Considere usar ack , que exclui .svn e pastas semelhantes (e tem muitos outros recursos) por padrão.