Hola Dimitri,
According to the RAE (Real Academia Española), they are synonymous and could be used interchangeably.
Desafiar 1. tr. Retar, provocar a singular combate, batalla o pelea.
Retar 1. tr. Desafiar a duelo o pelea, o a competir en cualquier terreno.
Personally, after reading the other entries for each of the words, the little tiny nuance I could perceive would be that "reto" has to do more with an external response and "desafío" with an internal response.
Examples:
1. Te propongo una carrera. ¿Aceptas el reto? (based on an external factor)
2. Aprender japonés es un gran desafío. (based on an internal factor)
But honestly, the nuance is really minimal, and not sure if other Spanish speakers perceive it the same way. Language can be so subtle!
Good luck in your study,
Rocio