The difference between BI and Cycles is the difference between a biased and unbiased renderer.
A biased renderer uses shorcuts to achieve the final image (fewer samples on every pixel, averaged out by the engine, and certain effects are pre-calculated in dedicated passes). It does not simulate how light behaves (at least not fully). Blender Internal does not have indirect capability, so that helps in speed too.
The advantages of a biased renderer is speed.
Unbiased rendering similates how light behaves. While Cycles can be tweaked to defy physics (certain brightness/contrast node combinations that exceed the brightness of what its reflection should be), it simulates the photons (though in reverse direction, tracing the rays from the camera to the source). Too few photons (samples) will produce a grainy image, as under-exposing a camera sensor or film would. There is a lot more math involved, and as a result, is slower than biased ray tracing and even slower than rasterization.
The advantage of an unbiased renderer is physical accuracy.