O problema é que a sub-shell $(...) em seu comando é avaliada no momento em que você executa o comando e não é avaliada por xargs para cada arquivo.
Você pode usar find -exec para avaliar os comandos de cada arquivo em sh e também substituir as citações apropriadamente:
find . -name "*[a-z][A-Z]*" -type f -exec sh -c 'echo mv -v "{}" "$(echo "{}" | sed -E "s/([a-z])([A-Z])/ /g")"' \;
Se a saída estiver boa, elimine o echo in echo mv .
Observe que, devido a echo | sed , isso não funcionará com nomes de arquivos com \n incorporado. (Mas essa foi uma limitação já existente em sua própria tentativa, então espero que seja aceitável.)