This is the information from UESP. This is why he will not die.
"The battle with Miraak is scripted. When Miraak drops below 20% health, he will become ethereal and head to the pool in the center of the platform. After killing a dragon, and absorbing its soul, he will regain full health and continue the fight. This cycle must happen twice in order to complete the battle. If you deal enough damage in a single strike or spell to bring him below 10% health, he will kill a dragon, absorb its soul, but will be unable to regain full health. This will cause him to stay ethereal, making the fight impossible to complete."
So, when his health gets low, like 40%, use lighter attacks so he does not get below 10%. :)