Разница между ними чисто стилистическая.
"Почему?" используется, главным образом, в случаях, когда мы пытаемся понять причины происходящего не зависящего от чьей-либо воли.
Примеры:
"Почему солнце всходит на востоке?"
"Почему вода в море соленая"
"Почему всегда так все глупо получается?"
"Ну почему ты ко мне равнодушна?"
"Зачем?" используется, главным образом, в случаях, когда мы пытаемся понять мотивы сознательных поступков или действий других лиц или своих. Иногда, вместо зачем можно употреблять и "почему".
Примеры:
"Зачем я ввязался в этот спор?"
"Зачем (почему) ты повернул налево?"
"Зачем ты купил этот ужасный галстук?"
"Зачем мне нужна эта поездка в Вологду?"