Dans le dictionnaire j'ai trouvé qu'il faut employer dans.
En revanche, j'ai trouvé plusieurs exemples qui disent « sur une île ».
Y a-t-il une règle grammaticale qui peut m'expliquer la différence entre les deux ?
On disait plus « dans une île » mais la tendance à commencé à s'inverser à partir des années 50 et « sur une île » est plus utilisé depuis 1990 (« sur une île déserte » depuis 1970).
cf google ngram
La démocratisation des voyages en avion a peut-être rendu les îles moins isolées et plus « plates », comme semble le montrer la corrélation remarquable avec la recherche « agence de voyage ».
On peut aussi remarquer que « dans » et « sur » ne sont pas toujours interchangeables lorsqu'ils s'appliquent à une île.
Si, par exemple, on se trouve déjà sur une île mais sur la côte et que l'on va visiter l'intérieur de l'île, on dira bien plus naturellement « je vais dans l'île » que « je vais sur l'île ».
Les deux sont corrects, à ma connaissance, mais partagent deux idées différentes :
Généralement j'entends plus souvent le second cas, mais les deux sont corrects.