According to the documentation in SDK 4.8.1 WorkoutStep.durationValue is Number (https://developer.garmin.com/connect-iq/api-docs/Toybox/Activity/WorkoutStep.html#durationValue-var ) , but both in the simulator and on real device (fr965) durationValue can be Float as well (i.e for distance, time)
You can reproduce it with this workout: Run_Test_1_workout.fit
and this beta app: https://apps.garmin.com/apps/8a786e61-e89f-4f63-a7a7-356c8c5e4927 (it'll display the workout step's durationValue nicely formatted, and then ";" and the raw value, where you can see if it's a Float)