A simple explanation would be that Apple is using one of the many other maximum heart rate formulas. For me, “208 minus 0.7 times age” is consistent with the maximum heart rate number that my watch is showing.
This raises an interesting question regarding the way that VO2 MAX is estimated. An estimation of VO2 MAX may use age as an input, but it possible that the primary reason that age affects VO2 MAX is that maximum heart rate declines with age. For someone for whom “208 minus 0.7 times age”, say, does not give a very accurate value of maximum heart rate, it might be better to solve “208 minus 0.7 times age equals maximum heart rate” for age, and use that as the value for age in the VO2 MAX estimation.
In any case, it is clear that if a VO2 MAX estimation is assuming, explicitly or implicitly, a value of HR MAX that is much too low, then the VO2 MAX estimate will also be much too low. Suppose that, when doing a certain activity (and consuming a certain amount of oxygen), your heart rate is 150. If your maximum heart rate is 160, your current oxygen consumption rate will be fairly close to its maximum. However, if your maximum heart rate is 180, your maximum oxygen consumption rate will be quite a bit more than its current value.