The word evidently comes from PIE e̯dentsnea̯ from e̯donts "tooth" from root e̯ed- "to bite". This should give "дясна" in Russian. Why "десна" then?
Well, it should and it was - in Old Russian it was "дясна" up to XV century. In Ukrainian it is still "ясна" which is the remnant of that form. In Belarusian it is "дзясна".
To my knowledge in almost all other Slavic languages, except Polish and including Church Slavonic, the form was with -e. My guess is that something similar to "aгнец"/"ягнёнок" had happend, it's just that in this particular case, the church slavonic form won.