As per StrixVaria, the one good use for Flush is that it triggers Overwatch attacks when it forces the enemy to move. As an enemy in full cover has 40% defence (which is a -40% to aim), putting your other troopers in Overwatch and forcing the enemy to move via Flush may be better than taking direct shots at the enemy.
Ultimately, Flush is the one Assault ability that I never use, for two reasons.
It is unreliable. It doesn't truly force the enemy out of cover - it forces them to make a move. They can (and will) move to another covered position - sometimes moving from half-cover to full cover and sometimes moving in such a way that they make your position worse. Using explosives to deal with cover is far more reliable.
Rapid Fire is awesome when you need something with a lot of hit points dead, or when you need to guarantee a hit.