I know it is correct to say
He has been dead for three years.
I've learned the present perfect tense, and it's said that non-continuous verbs are allowed. Is this sentence correct as well?
He has died for three years.
Die is an Inchoative verb; that means it refers to a change of state.
The Present Perfect construction can be used with a Stative predicate like be dead or own a house the way you suggest. This is called the Universal sense of the Perfect.
But die is not stative; it's inchoative, and therefore punctual -- it refers only to the instant when the change took place. So, in principle, it could use the Existential sense of the Perfect, which is restricted to punctual, or at least completable, events.
which suggests that he has died several times over a time span of three years. However, dying is something that can only be done once, and therefore a sentence like this is apt to raise an eyebrow, at least.
It would work for describing an unsuccessful stand-up comic.
"He has died for three years at the Edinburgh festival "
Thousands of years ago, Jesus of Nazareth died. On that day, it was His decision to die, remain dead for three days, and then come back to visit the living for a time. So the Romans nailed Him to a cross, and the Holy Grail caught His blood. Presently, the apostle said "The Messiah has died for three days. Let's all come back and see him again afterward. It'll be a grand party, with lots of booze and Holy Spirits!"
-- Written by a native speaker of English.