A ação -printf é específica do GNU find, por isso não está disponível em plataformas que não executam o GNU find. Somente Linux e Cygwin não-embarcados executam o GNU find, a menos que você o tenha instalado separadamente.
Você pode instalar o GNU find no Solaris .
Como alternativa, você pode reescrever seu script para usar somente recursos portáteis. Não há uma maneira genérica de traduzir -printf : especificadores diferentes precisarão de ferramentas diferentes. Para %f e %h , é fácil, pois são apenas partes do nome do arquivo. Se o nome do arquivo estiver em uma variável de shell x , você poderá usar construções de expansão de parâmetro para extrair o nome base (remova o prefixo */ ) e o nome do diretório (remova o sufixo /* ).
find . -type f -exec sh -c 'for x do printf %s,%s\n "${x##*/}" "${x%/*}"; done' sh {} +