How, if at all, is Message Passing Interface (MPI) related to the general concept of "message passing"?
Admittedly, the question does sound ridiculous. Surely, "Message Passing Interface" is an interface for message passing, right? Nonetheless, it's not actually clear to me if MPI is somehow related to the general concept of message passing in programming languages or if the name "Message Passing Interface" is a historical artifact.
As described by Wikipedia, and as I'm familiar with it, message passing is a concept from object oriented programming in which objects are sent "messages" that request an action but are not tightly coupled to the code implementing that action. The details vary a lot between programming languages but the crucial element that there is a layer of indirection allowing objects to decide how to implement a member functions at runtime and without the caller knowing the details. For example, messages could be a string specifying the requested action along with appropriate arguments and objects receiving a message would decide what code to dispatch to based on the string and arguments. Another component is usually that the message is self-contained and arguments in the message are not references to data outside the message. The caller may have to copy data but the called object is free to modify received data as needed without concern for affecting the caller.
In contrast, MPI is relatively low-level -- being only slightly higher level than BSD sockets by abstracting away OS details -- and is not OOP in nature.