Well, the reason is quite simple. As you may, or may not know, plants need oxygen in their soil to live. Air spaces are between the particles of soil. When you water your plant the water drains through the soil and out the hole in the bottom of the container. As the water drains through the soil it pulls air down through the soil with it. Every time you water your plant, you should water it until the water runs out the bottom of the pot. Empty any water left in the saucer after 30 minutes. A plant should never be left sitting in water. The soil becomes waterlogged and no air spaces are left in the soil, thus suffocating your plant. Okay, that being said, water does not drain easily from smaller pored material, such as soil, into larger pored material, such as gravel and definitely pot shards. So, the soil will be waterlogged before the water ever drains into the gravel or pot shards. Therefore, the very thing we are trying to prevent by adding "drainage" material to our containers, is actually inhibiting drainage.
I tried to draw a diagram to illustrate this concept. As you can see, (or not), the roots on the left without the gravel are filling the pot clear to the bottom. The roots on the right, are barely filling half of the pot. By adding gravel, the soil column is shortened.
Also, notice I talked about the drainage hole. EVERY houseplant should be in a container with a drainage hole. Sometimes, gravel and pot shards are also used to keep the soil in the pot and keep it from coming out the bottom hole. I find that a piece of screen does that job very well.
So, next time you are repotting a houseplant, refrain from reaching for the "drainage" material. You will be doing your plant a favor!