The difference isn't apparent until you take a look further down on the documentation page you linked.
When you get to the detailed descriptions of each method, you'll see additional information in the "signature" section
addError(errorMsg)
Marks a record with a custom error message and prevents any DML operation from occurring.
Signature
public Void addError(String errorMsg)
vs
addError(exceptionError)
Marks a record with a custom error message and prevents any DML operation from occurring.
Signature
public Void addError(Exception exceptionError)
One method accepts a string, the other accepts an Exception
(or a subtype thereof).
That said, that's probably about the only meaningful difference between the two methods. The concept of having multiple methods with the same name, but differing in the number and/or type of parameters they take is called "method overloading" (a type of "polymorphism", a term for a programming concept. The term is derived from Greek meaning "many forms").
The note about surfacing error messages in the application interface might cover more than just the UI (DataLoader is a different interface that interacts with the Salesforce "application"), though I don't see the term precisely defined anywhere in the apex docs.
At any rate, though, the behavior I think you're describing (using DataLoader, encounter an error, error pops up in Salesforce UI in your browser) does not happen. Error messages are only surfaced in the interface that initiated the work that encountered the error (you may get an email from Salesforce as well).