Eu não sei em qual versão de encontrar você está usando. Mas, geralmente, o primeiro argumento é o diretório onde encontrar, e se você quiser filtrar alguns nomes de arquivos, você tem que usar o argumento -name. Meu palpite será
sudo find . -name 'readme*' -not -perm -o+r -exec chmod +r {} \;
Não se esqueça de citar o padrão do nome do arquivo. Se você não fizer isso, o * será avaliado pelo shell e não será passado diretamente como um argumento. Isso pode explicar o comportamento estranho. Porque neste caso, provavelmente o shell tenta passar todos os nomes de arquivos correspondentes ao readme * como argumentos para o sudo.