Yes there is quite a big difference. For require() Your script will not run until the required elements are included. With include, the remainder of your script will run if the included element fails to load for some reason. I typically use require for database work, security, or payment processing. Include still suits most purposes, however. And in many cases this is down to personal preference.
A programmatic analogy is like this:
In require, if required fails to load then die().
In include, if include fails to load then continue.