Depois de acessar um diretório que não é executável, find
tenta entrar nele, mas não é possível porque, bem, não é executável. Você precisa dizer para não tentar usar -prune
.
E coloque essa condição em primeiro lugar, por isso não está em curto-circuito.
find . '(' '(' -not -executable ')' -and -type d -and -prune ')' -or \
'(' -not -readable ')' -or \
'(' -not -writable ')'