Um function é local para um shell, então você precisaria de find -exec para gerar um shell e ter essa função definida nesse shell antes de poder usá-lo. Algo como:
find ... -exec ksh -c '
function foo {
echo blan: "$@"
}
foo "$@"' ksh {} +
bash permite exportar funções através do ambiente com export -f , assim você pode fazer (no bash):
foo() { ...; }
export -f foo
find ... -exec bash -c 'foo "$@"' bash {} +
ksh88 tem typeset -fx para exportar a função (não pelo ambiente), mas isso só pode ser usado pelo she-bang menos scripts executados por ksh , portanto não com ksh -c .
Outra opção é fazer:
find ... -exec ksh -c "
$(typeset -f foo)"'
foo "$@"' ksh {} +
Ou seja, use typeset -f para despejar a definição da função foo dentro do script embutido. Note que se foo usar outras funções, você também precisará descarregá-las.