Quoted By:
Zygarde, for all intents and purposes, is a Dragon. But once you really get into it, it's actually much closer to a Serpentine Dragon than a snake.
With Zygarde's body dimensions, from the head on down it doesn't really match up to what you would find in a typical snake. It's torso is way too short and flat to have agility that would match up with actual snake pokemon like Ekans and Seviper. Also its mouth looks nothing like how a snake's mouth would; there's a solid lower jaw and two full rows of sharp teeth, usually how serpents are depicted to have.
Now I will admit it does have elements that borrow from snakes, such as the hood and the design on its hood. The general shape of its head is also very snake-like bar the jaw. The frills match closer to various lizards. The scales are both reptilian and dragon-like. Serpents also happen to borrow most if not all of its traits from existing reptiles.
Summed up, Zygarde is a serpent, but it wouldn't be wrong at all to assume it as a snake since it takes a lot from snakes and reptiles.