Esse "retorno" não é o código de saída de find , mas o valor de retorno da ação -execdir para fins de encadeamento de várias ações find juntas. Se você tentar:
find . -execdir false '{}' \; -print
então -print nunca é executado (ou seja, não há saída), enquanto os dois:
find . -execdir true '{}' \; -print
find . -execdir false '{}' + -print
imprima todos os caminhos.
No entanto, ao usar + , o código de saída de find é definido: é diferente de zero se qualquer chamada do comando sair diferente de zero, enquanto que para ; o código de saída não é afetado (diretamente) pelos resultados do comando. Este comportamento é exigido pelo POSIX para -exec , eu suponho indicar falhas que de outra forma seriam indetectável:
If the primary expression is punctuated by a
<plus-sign>, the primary shall always evaluate as true, and the pathnames for which the primary is evaluated shall be aggregated into sets. [...] If any invocation returns a non-zero value as exit status, the find utility shall return a non-zero exit status.
-exec ... \; não está especificado como afetando o código de saída, portanto, o comportamento padrão de find de sair de zero, a menos que tenha ocorrido um erro. Um comando -exec ... \; saindo de um valor diferente de zero não é considerado um erro, portanto, na ausência de algum outro erro, o código de saída será sempre zero.