Você precisa usar a sintaxe find
do -exec
corretamente, usando '{}'
para representar os arquivos encontrados
find ./ -type d -name '*.txt' -execdir rename -n 's/\.txt//g' '{}' \;
Remova -n
após rename
depois de testá-lo.
(supondo que você realmente queira alterar nomes de diretórios e não nomes de arquivos regulares - se for esse o caso, use -type f
em vez de type -d
)