The optimum length of time to hold a yoga pose is approximately 30-60 seconds if the goal of that particular pose is to increase flexibility. It is important to make clear that an increase in flexibility/range of motion is not always the reason to perform a yoga pose. In many cases the goal is simply health, movement and mobility of the muscles and joints.
However, research on the hamstring muscle (Bandy, 1994) shows that 30 second stretching yields the best results. There is a theory that the stretch has to progress from the middle of the muscle across to the tendons. This process takes around 10-15 seconds of stretching. A 10 - 15 second stretch may be beneficial to the muscle in terms of keeping it alive and alert but will have minimal influence on the ligaments, tendons, and fascia (cling film like tissue that covers the muscle fibres). It is the ligaments, tendons and the fascia that are responsible for flexibility.
Some of the research I have followed states that up to 60 seconds is optimal. Those who held static stretches for 2 minutes showed no additional gains in flexibility compared with those who held out for 60 seconds.
If you practise at home and are looking to increase flexibility, then the following must be considered. If the goal of the pose is movement, mobility, awareness of the body etc, the pose can be held for 7 or 45 seconds. If the goal of the pose is to increase flexibility, the research tells us that approximately 60 seconds is optimum.