Primero que nada, cuando un script falla, una de las herramientas de depuración más importantes es ejecutarlo como "sh -x" o "bash -x". El -x hace que el intérprete te vaya indicando qué hace en cada paso.
Segundo: ¿para qué el sleep?
Tercero: GNU find tiene la opción -delete que puede sustituir a tu -exec.
Cuarto: ¿cuál es el error? ¿qué es lo que no hace?
Quinto: podés ejecutar
set -e en un script para que cualquier comand que falle luego, haga que el script se detenga.
Saludos.