Simply, a hierarchical design uses 'blocks' to represent lower-level entities without showing all the details of those lower-level blocks.
For example, you could have a block that represents an input stage consisting of an op-amp and some resistors and caps, etc. Now, say you have 16 input stages in your design. On your upper-level diagram you would simply show 16 blocks, each with an input port and an output port, and just show the interconnects between those blocks and the rest of the system. For a flat design, you would show every component in the design.
In a hierarchical design you can have multiple levels (blocks within blocks).