I found this in "Si dice o non si dice" by Hoepli Editore:
DÈI: PERCHÉ GLI DÈI E NON I DÈI?
Diciamo i deboli, i devoti, i
deserti; ma perché allora gli dèi e non i dèi?
C’è nella nostra lingua
la forma Iddio nata anticamente da il Dio, dove l’articolo s’è fuso
col nome. La parola si scriveva anche con la i minuscola quando
riferita alle divinità pagane: iddio con plurale iddíi e anche iddei.
Di queste varie forme, solo Iddio con la maiuscola è ancora vivo
nell’uso comune.
Tutto questo spiega la ragione dell’articolo gli
anziché i davanti a dei: perché anticamente la parola era iddei:
dunque gli iddei, come gli ideali, gli idranti, gli idiomi eccetera
(vedi alla voce il oppure lo?). Ma caduto il gruppo iniziale id,
l’articolo gli ha pensato bene di rimanere abusivamente al suo posto e
non cederlo ad un i che sarebbe grammaticalmente più corretto.
Ennesima dimostrazione che la lingua non la fanno i grammatici ma
l’uso (e a volte il sopruso).
And its approximate translation is the following:
We say i deboli, i devoti, i deserti but why then gli dèi and
not i dèi?
In our language there is the form Iddio coming from the ancient il
Dio, where the article fused with the name. The word was written also with
the lowercase when referring to pagan deities: iddio with the
plural iddii and also iddei. Of these various forms, only Iddio
with the capital letter is still alive in current usage.
This explains the reason of the article gli instead of i before dei: because in the past the word was iddei, the same as gli ideali, gli idranti, gli idiomi etc. (take a look to the il oppure lo? (dictionary) entry). But after the dropping of the initial group id-, the article gli decided to stay illegally without giving up its place to an i which would be more grammatically correct.
Further demonstration that language is not made by grammarians but by the usage (and sometimes the abuse).
Moreover, as mentioned by @Charo, there is an interesting and more extensive article by Accademia della Crusca answering your question.