A static website is one that is written in HTML 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 and edit the HTML - so you'd either have to do it yourself using a web page editor or we can edit the site each time you wanted something changed.
A dynamic website is written using more complex code and can do a lot more. For instance, we can make an area where you can log in and change various parts of the website, such as adding information or products or changing existing products. eCommerce websites, news websites are some examples of dynamic websites. 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 interface.
Dynamic websites can reduce ongoing maintenance costs if you don't want to change things yourself with a web page 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 websites is that they allow you to change only the content of the website and not the design, so you will not be able to accidentally break the visual style of the website. They have other benefits when websites start to get very large, as they make data management much more efficient and your website 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.