@iassael emphasized more on regularization effect as a result of reduced parameters, but I think better performance of weight sharing method is more about finding local features instead of global one. This reduces exponential possibilities to a linear scale or at least to a scale that can be more easily managed. Here is a simple example. Let's say we have an input with only 4 pixels and each pixel has only binary values '0' or '1'. there are 2^4 = 16 possible configuration for a global feature to learn. However, if a local feature, let's say it has only 1 pixel receptive field, is used, it is enough to learn 2 simple feature '0' and '1'. As receptive field size increases, number of feature needed to learnt also increases. As a result, local features reduces number of features that are needed to learnt. By convolving this local features on all input space it can be found where this features are present exaclty.
Let's apply the same analogy to an object detection test. If fully connected first layer attempts to extract all possible configurations of edges at given images, it needs to learn many combination of different edges which is plenty. However, if it tries to learn local features, number of possible edges greatly reduced to different edge orientations. Then via convolution it can reveals which location mostly activates a specific edge orientation.