The "dodge bug" or "dodge glitch" has been present almost since the debut of Pokemon GO. This widely known glitch has received much attention over time as a standalone issue. This is an unfortunate misconception. The dodge glitch endemic to legendary raid battles is only one manifestation of server / client desynchronization.
To illuminate the extent of the problem, this article illustrates and describes the dodge bug and other common effects of desync in raid battles.
The Dodge Bug
Appears to occur solely in multiplayer raids. Occurs when a trainer attempts to dodge an incoming charged move that would knock out the attacking Pokemon. The dodge seems to have been effective, but the remaining HP is subsequently deducted and the next Pokemon cannot enter. Manual switching allows the trainer to continue battling as normal.
Phantom Hit (Charged Move)
Charged move damage is applied to the attacker independent of boss energy levels or inter-move duration. Occurs in both solo and multiplayer raids. Seems to occur more frequently when dodging is attempted, but does not directly correspond to dodged moves. Can occur multiple times in quick succession.
Phantom Hit (Fast Move)
Fast move damage is applied to the attacker independent of inter-move duration. Seems to occur more frequently when dodging is attempted, but does not directly correspond to dodged moves. Can occur multiple times in quick succession. Less noticeable than a charged move phantom and not necessarily attempt-ending, but lowers margins on tight challenges.
The Disappearing Pokemon
Boss Health Regeneration
Of the desync events illustrated above, the commonly known dodge glitch is perhaps the least pernicious. As the mechanics are understood, trainers can plan around the glitch: don't try to dodge if a charged move would KO the attacker. While the limitation is frustrating (especially against bosses such as Blizzard Kyogre and Draco Meteor Palkia), the dodge glitch rarely results in unexpected failure.
In solo raids, the symptoms of desync are more infuriating. Speed solos, PokéDraft runs, and 1v1 challenges are highly sensitive to time, energy, and HP, all of which can be affected by server / client desync. Boss health regen and energy rubberbanding can scuttle a record speed run. For PokéDraft teams, with their reliance on one or two strong counters and frail Pokémon, a phantom hit can add 10+ seconds to the final time or prevent the trainer from beating the boss. Worst of all, 1v1 attempts can be crippled by 2 or 3 fast move phantoms, much less a charged phantom. It's common for a full 45-minute solo session to pass without any clean runs, resulting in failure of the challenge and occasionally of the raid itself.
The common thread in all types of desync events is that control is removed from the player at random times with no warning. Any kind of competitive or performance raiding is at the mercy of Niantic's servers, instead of in the hands of the player.
For further illustration of the various symptoms of desync, the interested reader may find the following sources instructive:
Dodge glitch explainer (Dogoo Man): Dodge Glitch – Triggering and Effect on Battle Performance
Phantom hit compilation (u/ct9876): Do you believe in phantoms? Pokemon Go is a broken game
Full raid battle (u/CuttyWow): Tyranitar vs Scyther and Phantoms 1v2
Full solo session (u/CuttyWow): 1v1 Behind the Scenes Vol. 1 [ROUGH CUT]