From a SharePoint point of view, both are created by a SharePoint Admin, through Central Admin or PowerShell.
An IIS site is equal to a SharePoint web application. Each web application must run within a single application pool. However, an application pool can host several web applications.
An application pool represents a w3wp.exe process running on the server (you can see it in Task Manager). It provides a process where the IIS sites (web apps) that use it can execute server side code and respond to user requests.