The need of clock stretching because the Slave may is not able to received from the Master or the Slave require additional time for process the received data.
Many Slave device is low cost device that don't have good buffer system, need long time read of slow memory and use clock stretching to prevent Overflow.
It is a cheap speed control system (compare as more complex async connections),safe and simple.
It also as some low cost devices CPU can not working on I2C when working on a busy task, For example a sensor may require interrupt and hold the clock line low, after sensor internal jobs done, the sensor will goes high and send the data under normal speed.
Ref: http://cache.freescale.com/files/sensors/doc/app_note/AN4481.pdf P.12