I would say that the main difference is in the paradigms.
The main idea for using Azure Functions is in reactive scenarios, where an action or event will start running your Function. For this reason, by hosting them in the consumer mode, your application will not be running 100% of the time.
There is a delay between the event/action and the execution of Function, this "problem" is known as Cold start.
If you have an App Service Plan, you can also host your features on this App Service Plan, and Cold start will be minimized.
On the other hand, Webapps, as stated, are mostly used for hosting Apis.