Hi David -
The reason you are seeing different numbers between Zwift and your Garmin is because your Garmin is displaying the speed you would be generating on a flat road without any other variables. In Zwift, your speed is not only determined by your power, but also the weight of you and your kit, the gradient of the course, and other similar factors.
You may have to work very hard to hit 30 km per hour on the flat, but will have to work much harder to hold it on a climb, and not nearly as hard on the downhills.
I hope this helped explain!