La frase «no hay moros en la costa» significa que no hay peligro ni riesgo a la vista, que todo está tranquilo.
El origen de esta expresión se remonta a la época en que las costas españolas eran amenazadas por piratas musulmanes (moros) desde el norte de África. Se utilizaba para avisar a la población de la presencia de estos piratas o de la ausencia de ellos, indicando si era seguro salir a navegar o no.
En la antigüedad, las costas españolas del Mediterráneo eran vulnerables a los ataques de piratas musulmanes, principalmente desde el norte de África.
Se establecieron torres de vigilancia (atalayas) para vigilar la costa y alertar a la población de la presencia de barcos enemigos.
Si se avistaba un barco enemigo, se gritaba «¡Hay moros en la costa!», y si no, se decía «no hay moros en la costa» para indicar que no había peligro inminente.
Significado actual:
Actualmente, la expresión se usa para decir que no hay ningún peligro, que se puede hablar sin temor a ser escuchados o interrumpidos, o que no se espera ningún problema.
Fuente: https://www.google.com/search?q=origen+y+significado+de+NO+HAY+MOROS+EN+LA+COSTA&oq=origen+y+significado+de+NO+HAY+MOROS+EN+LA+COSTA&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQIRigAdIBCTExNDIzajBqN6gCALACAA&sourceid=chrome&ie=UTF-8