Its because there is no smoothing with zwift. On trainerroad when i first took a ftp with a virtual powercurve, i turned on 7 second power smoothing.
There is a lot going in a virtual power curve, tire slippage, heat generated, and trainer loosening.
To combat this without having any power smoothing
your tire should be inflated to 100psi
check the trainer tension
check to make sure your speed sensor is secure
Ramp up in a controlled manner (keep in mind the 20 min segment is your average then its multiply by 95%) do not spike off the bat the first minute should be the ramp up, at no later than 1.5mins into the effort you should be settled.
For this type of test it is best to use hrm and work to threashold heart range. If there was a real time plot of hr as it relates to time you can kinda judge if your settled.