Over the years I've discovered that I've had much more trouble with scenes where materials were linked to the Mesh Data. This is Blender's default. Then I'll go through the arduous task of re-linking the same material(s) to the Object Data instead. I know that I can set the default on my own machine/install to have materials link to Object Data. I'm curious what's the philosophy behind linking materials to Mesh Data? What are the perceived advantages? Does anyone else have this problem?
Who knows what the original reasoning behind this was? This default was chosen maybe 15 years ago and there has not been a good reason to change it.
To me it makes some sense to share by default. When you have a particular object that you want to give a different material than the others sharing the same mesh, then you're there in the material tab editing things anyway and you can change the linking to object at the same time.
If linking to object was the default, you might make linked duplicate objects with AltD, placing the object in different places in the scene. But now if you want to change the material you have to go and change each individual object.
Edit: (in response to a comment below) A set reason was never given for this, this is merely a speculative answer based on what I know of this option. You can skip to the bottom for the conclusion.1
To understand this option properly, you need to understand how Blender works with Objects. Almost everything in Blender is organized in a hierarchy of Datablocks. A Datablock can be thought of as containers for certain pieces of information. For example, the Object Datablock contains information about the Object's location while the Object Data (ObData) datablock contains information about the mesh.
Linking a material to obData (to mesh specific data) is ideal when you want a mesh to always have the same material, while linking a material to an object is when you want to have different materials on objects that share the same mesh.
Short explanation: If connected to the object, you can have several instances of the same obData using different materials. If linked to mesh data, you can't.
1Sorry for the extended explanation but it was to clarify this point. In an answer to your question, I don't think there was ever a set stated reason as to why this is. Based on how it works however, I am assuming that it is linked to meshes by default as this might be more ideal for beginners or for quickly setting up a scene. It is much more customizable and intuitive than linking to object.