I’m not a Japanese native speaker so I don’t have a definite answer, but a Japanese friend once laughed at me (jokingly) when I used “naze” in casual conversation. He said that I should use “doushite” or “nande” in casual speech because “naze” is a bit formal. I think that the level of politeness is the only difference though.
Hi, I’m here for a native point of view.
As Steve said, no difference in meaning.
In a mean time, like benhenschke said, I’d use doushite or nande in casual conversation with my friends.
If I’m in more fomal situation, I’d say naze-desuka.
Above all, don’t worry about it because it doesn’t really matter and I’ll understand you perfectly well