Não é tão simples. O Find só pode chamar um binário com um argumento "exec", mas agora você tenta chamar um pipe bunzip | gzip. Não é um simples binário, é uma cadeia de binários, e para iniciar uma coisa assim você precisa de algo, que possa manipular cachimbos.
A melhor coisa para isso foi uma concha. Você precisa chamar um shell para chamar esse pipe:
find . -name "*.bz2" -type f -exec bash -e 'bunzip2 -c {} | gzip > ${1%.bz2}.gz'
(Eu não testei, provavelmente algum problema de sintaxe pode ocorrer, veja isso como um template.)