I've thought about this on and off for a few years. Here's what I've come up with:
1. Popularity. You can't really display anything in a web browser without it, blank pages with one AJAX script notwithstanding.
2. Ease of use. Open a text editor, type some markup, save the file with .html, and open in a browser. When you're done, transfer to a server to show the world. That's a pretty straightforward process.
3. Well-defined, open standard. Every important piece of the web is defined, from the markup to the protocol to transfer it. I think that reasonably bug-free implementations of those standards help.