Actually, that’s not quite true. Percival anticipated Yamashita’s opening moves, including the landings in Thailand. His plan [Toreador] envisaged hitting the Japanese before they got ashore [a la rommel at Normandy]. BUT, higher ups dithered about sending troops into Thailand, worried it would be considered an act of war. By the time they gave the green light, the Japanese were already ashore.
Perival also faced the problem of being critically short [or non-existent] in two types of weapons: aircraft [too few and obsolete to obsolescent- newer aircraft types were reserved for Europe and Africa], and tanks [Percival had none, the Japanese had a bunch]. And once Kido Butai visited Pearl Harbor, and even before PRINCE OF WALES and REPULSE were sunk, the Japanese had control of the seas.
Perival also took command a short time before the war started. the lack of training demonstrated by his troops was not entirely his.
Having said all that, I don’t think Percival was the best choice for such an important job. Yamashita was. And I don’t think anybody else would have stopped Yamashita at that time, in that place.
At that time, and at that place, Japan was the aggressor. When you’re up against a defender that underestimates your intentions and capabilities, you have a distinct advantage.