Why "de ani de zile"? Why not just "de ani"?
Your answer is correct too. However, the given answer is a more natural and popular answer.
Ah, thanks; I was confused as I hadn't seen this expression yet.
I guess it's comparable to the Dutch expression 'sinds jaar en dag', litt. 'since year and day', meaning for a very long time, or even since times immemorial.
I think that Present Perfect Continuous would be more appropriate than Present Tense here:
Ele trăiesc de ani de zile pe insulă. = They have been living on the island for years.
What about "they have lived on the island for years"?
I think so too.