Supondo que você tenha a renomeação Perl fornecida pelo Debian e distribuições derivadas como Debian e Ubuntu, você está quase lá. O problema é que -execdir passa um nome de arquivo prefixado com ./ para o comando. (A razão para isso é que alguns comandos tratam argumentos que começam com alguns caracteres especialmente; assim, se você tiver um arquivo chamado -foo , ele será passado como ./-foo e, portanto, tratado como um arquivo e não como uma opção). sua regex, isso resulta em $1 estar sempre vazio e, portanto, o novo nome é idêntico ao antigo.
Acomode para este ./ em sua expressão regular.
find . -depth -execdir rename 's/^(\.\/[^.]*)\.(.*)$/\U$1\E.$2/' {} \;