It may be the case that support is generally longer term(I haven't looked at in depth personally) with open source. The problem is there is no guarantee, and outside of a few vendors like Red Hat or IBM, the developers don't have the resources to credibly commit to a guarantee even if they wanted to.
It goes like this.
Software A is an open source project from a reputable developer with a likely term of support of 5 years.
Software B is a commercial project from a reputable vendor with a guaranteed term of support of 3 years.
Most buisinesses, if support duration become the deciding factor, will go with Software B because they can count on that duration. They can count on Software B being around, they can get compensation if the term of support is not upheld.
Software A would require significant contingency planning in the event that needed support dissapeared early. Chances are they wouldn't be able to recover anything for the early withdrawal of support, even if the developer gave legally binding guarantees the chances the recovery would be enough to matter are not very good.
This certainly isn't to say that Software A is never a good business decision, for instance if Software A fully covered needs and Software B was merely close, A would probably be chosen. Or if the cost of Software B was judged to be greater than the risk of Software A support going away.
There are good reasons to take OSS into businesses, but expected duration of support is not typically one of them.
Obviously, if you get your OSS from someone like IBM or Red Hat, their OSS offerings would fall more into the Software B category.