El codigo se ve bien, solo una correccion en el IF
if (!$resultado) { //notar que se agrego un !
echo "<H1>Error ejecutando comando: $executa</H1>\n";
}
Si existe alguna falla la variable $resultado tendrá un valor Boolean Falso.
Te insisto en que son los permisos, (Ambos somos tercos segun parece)
estaria buenisimo si alguien mas opina para ayudar a encontrar una solucion.
Si nadie mas opina, te recomendaria que hagas el Backup por medio de Sql directamente y chau permisos