TL;DR: require breaks one of the fundamental rules of robust software systems, fail early.
In a nutshell, this is because, when using require, your code might yield different, erroneous results without signalling an error. This is rare, but not hypothetical! Note that require returns the boolean TRUE if the package is successfully loaded, and FALSE if it is not.
On the other hand, require does install the package if it hasnβt been installed (whereas library doesnβt).