I suppose it is prescribed to be written in this way (Майя), because it descends from the Ancient Greek name Μαϊα (meaning goddess Maia and "mother"), which is pronounced as /maja/ ⟨mah-yah⟩ itself.
While Зоя also has Greek origin (from ζωή — "life"), it is pronounced by Greeks themselves as /zoˈi/ (not as /zoja/) and originally spelled in Old Church Slavonic as Зоис /zoˈis/. Therefore the final spelling Зоя appears to be a result of posterior Slavic transformation of the word, not of original pronunciation transcription.
The same is true for Рая, Тая — these are Slavic short-hands for Раїса, Таїсія. Origins of Раїса and Таїсія don't even matter. The obvious fact — that ending -я was created by Slavs — matters.
Update: English Wikipedia proposes other etymologies for given name Maya: from Hindu word māyā ("illusion"), name Māyā, Hebrew name מאיה (Maya, short of ma'ayan "spring"/"brook"), Maya people (in Mesoamerica), Japanese name Mayako/Mayaka, mountain Maya, Māori name Maia ("palm tree"), etc. What is common in all these etymologies, is that an original pronunciation in all these cases is /maja/ ⟨mah-yah⟩ (or starts with /maja…/).
On the other hand, corresponding Russian name can be spelled as both Майя (more often) and Мая (rare). Russian etymologies include the Greek version (as primary) and descending from the Russian month name май (May; Ukrainian травень). The latter etymology seems to be really valid reasoning for spelling it as Мая (though май descends from Μαϊα itself (through Maius and May), a name owner can always say "my name is from май, not directly from Μαϊα").
TL;DR: Not the origin itself mostly matters, but the fact whether the ending -я was added by Slavs during the transcription/transliteration (to resemble the original pronunciation/writing) or during the later transformations. (Although the origin may matter too, because transcription/transliteration rules may depend on origin.)