Because that way you don't have any .innerHTML in your code, which makes it easier to analyze and requires fewer eslint expectations, etc.
And it has the same end result.
Also, technically, this should be faster since that empty string is not put through the html parser (tho browsers might optimize for this special case already).
Sounds like premature optimization to me. An empty string will take constant time. Much more concerned with communicating intent, and .textContent is just confusing.
Not an optimization, like I said, but to avoid having innerHTML in your code. innerHTML isn't that much better communicating intent, either. That's what comments are for.