Why the rules matter
A simple table is defined by its rules: a line of equals signs above the header, one below it and one at the end. The rule under the header is what tells the parser the first row is a header rather than data. Leave it out and the table renders with no heading and no error.
The rules also define the columns. Each run of equals signs marks one column and its width, so a value wider than its rule breaks the table. That is the failure people hit when they edit a table by hand and add a longer entry without widening the rule above it.
Simple tables and grid tables
reStructuredText has two table syntaxes. Simple tables, which this generates, are compact and cannot have merged cells or content that wraps across lines. Grid tables draw every border with dashes and pipes and can do both, at the cost of being far more work to maintain.
For most documentation a simple table is the right choice. Reach for a grid table only when you actually need a merged cell.
Where it renders
Sphinx, Read the Docs, Docutils, and anything that reads a .rst file. GitHub renders reStructuredText in a repository too, so a README.rst with a table in it displays correctly there.