If you check map of Westeros and consider that marching of armies takes weeks, it should be clear. Sailing is faster but not fast enough for this case. Yes, Olenna was caught off-guard since all her bannermen betrayed her, so there was noone to inform her of incoming troops until they were on direct Tyrell's land. It is highly unlikely that nobody loyal to Tyrells could spot the army until they actually reached the Highgarden, it was just a better and simpler scene for the show. Still, even if Olenna knew about the approaching army few days before they reach her gates, there wouldn't be enough time for Danny to arrive.
But regardless of Danny not arriving, it is impossible that ravens were not sent to inform both about attack and defeat (maeseter sends ravens when castle's defenses are broken, but fighting is still in the garden, maester has some time in his chamber). However since there was obviously no siege but attack (regardless of missing siege weapons) and victory, there was no time for Danny to react as her armies would need weeks.
However since Dragonstone is close to King's Landing and army must go back there with captured gold and supplies, it is doable for Danny to attack the returning army on time, which she did.