Como menciona @Stephen Kitt, isso é basicamente uma duplicata de find -delete não exclui diretórios não vazios , o que indica que você está dizendo para excluir diretórios, mas os diretórios não estão vazios (assim como executar rm some_nonempty_directory não funciona sem o sinalizador -r no mínimo).
Dito isso, se você substituir -delete por -exec rm -rv {} + ou -exec rm -rv {} \; , seu script deverá excluir o diretório recursivamente sem erro (remova o v flag se não desejar saída detalhada após o teste).
Observação: o + no final resultará em rm -rv file1 file2 ... , enquanto a ação de \; será rm -rv file1; rm -rv file2; ...