When we talk about layout in web design we usually mean page layout. Page layout is the part of graphic design that deals with the arrangement and style treatment of elements (content) on a page. A content management system like Joomla can have thousands of pages (or more) and it's very important to think about an arrangement of content elements that is readable on any type of screen.
A page layout can be easily drawed with a pencil on paper or by using a page layout software.
The hard part is to transform the planned page layout into HTML/CSS and integrate it into Joomla.
Joomla used layouts based on HTML tables for a long time. They are easy to create, they are working well for 80% of the use cases but it is semantically wrong to use HTML tables for a page layout. HTML tables should only be used for rendering data that belongs naturally to a grid, like in a spread sheet. A good example for the use of HTML tables is the periodic table.
A few years ago there was a big discussion about the topic "Table vs. CSS Layouts" (Tables: The Next Evolution in CSS Layout).
Layout in general is hard because it is about design!
Using Cascading Style Sheets (CSS) is harder compared to HTML tables because CSS offer so many possibilities to arrange your content. To get an overview about working with CSS, read carefully Learn CSS Layout.
If a task is hard, someone will create a framework to simplify it. In our case companies that provided templates for different content management systems needed frameworks to make their development work easier. In the Joomla world a few frameworks appeared (Gantry, T3, Warp, Phoca) but they were mostly tied to the products of that companies. Later we saw company independent frameworks still tied to Joomla (Construct, Morph).
Regardless content management systems, the need for frameworks was also high and a few results are Foundation, Bootstrap, and Skeleton just to mention a few.