A SharePoint web application is primarily a logical concept, whereas IIS Web Sites are a physical concept. A web application is a container and a boundary of a lot of settings related to serving content to the users such as security policies, URLs, content databases etc. A web application is defined inside the configuration database.
An IIS Web Site is the underlying physical component that actually serves the content to the users. It enables to define host headers, ports, SSL certificates etc. Each IIS Web Site is assigned to an application pool - another physical concept - that provides the necessary worker processes (w3wp.exe) and user identity.
In fact, a SharePoint web application can contain multiple IIS Web Sites to fulfill different requirements such as different SSL certificates or web.config files.
You might want to take a look at the following article that provides a nice overview: