あー、すまん
belongsToでも2階層先はSQL分割されちゃうのか

なんなら
Fruit hasMany History
Fruit belongsTo Producer
にして
$this->Fruit->find('all', array('conditions'=>array('Producer.rank'=>'B')))
とかにしたらどうかね

ちょっと酒入っているので自信がないが