In many circumstances, they could all mean "why," but there are often slight differences in nuance and in the level of formality.
"Nande" literally means "with what," meaning approximately "for what reason."
"Doushite" literally means "how to do," or "how so" and therefore "why."
"Naze" is the most formal way to say "why" and only means "why," whereas the other expressions could meaning something else depending on the context.
For example: Naze kimashita ka? (Always means "why did you come?")
However, "Nande kimashita ka?" could mean "with what transportation did you come?"
"Doushite kimashita ka?" could also mean "how did you manage to come?" (i.e., what did you do to get here?)