A static site is one that is written in HTML and CSS only. Each page is a separate document and there is no database that it draws on. What this means functionally is that the only way to edit the site is to go into each page code and edit the HTML – so you’d either have to do it yourself using a webpage editor like Notepad++ or sublime or pay me to go in and edit the site each time you wanted something changed.
A dynamic site is written using more complex code and can do a lot more. For instance, I can make an area where you can log in and change various parts of the site, such as adding information or products. This is because each page is constructed based on the information in a database, and the information in that database can be changed via another web interface.
Dynamic sites can reduce ongoing maintenance costs if you don’t want to change things yourself with a webpage editor or with the HTML. They usually cost more to develop, as they require more complex coding and a content management utility needs to be developed to help you manage your website information.
Another benefit of dynamic sites is that they allow you to change only the content of the site and not the design, so you will not be able to accidentally break the visual style of the site. They have other benefits when sites start to get very large, as they make data management much more efficient and your site more expandable.
Many clients do a combination, having some dynamic areas such as a product catalog where they have to change information or pictures regularly, and leave other pages such as contact information as static pages.