Why do we ask people "What brings you here?" instead of "What has brought you here?" According to Oxford Dictionary, "bring" here means "cause someone to come to a place." The cause of the visit happened before someone's coming. Therefore, isn't the usage of the present perfect more grammatical, as in "What has caused you to come here?"
This is a hubby pet peeve and is SO frequently used here in the US. While you're correct that "What has brought you here?" is correct, "What brings you here?" is generally understood to mean something very specific:
"Why are you here?" or "What has caused you to come here?", not what literally brought you (a car, a bus, a cab, a rickshaw).
The other part of that phrase that bothers non-native speakers is that "brings" is in the present tense and is anachronistic in the sense that if you are "here", you've been brought already and are not in the process of having something bring you.
Again, though odd and anachronistic, it is idiomatic to mean "Why are you here?" Edit: ...but in a less direct or confrontational way, as @Oldcat has kindly pointed out to me.
"What brings you here?" suggest that this isn't your first visit, indeed, you keep coming back, and why would you keep coming back?
"What has brought you here?" asks why did you come here in the first place? It might not be the reason you are here now, but something brought you here in the beginning. If this isn't it.