At my company the policy/arrangment varies by position and type of contract you work on,
For me, the policy is: if the customer is unwilling to pay for business class, the company will pay for a ticket upgrade if the flight is under 3.5 hours if you request it and they approve you of course. Which is not always the case.
For my particular role and function all contracts that I take on stipulate that if the job site is more than 3.5 hours total flying time from my base, it is the employer's responsibility to purchase travel tickets in either premium economy or business class.
Usually they'll buy me Y+ when available instead of J class when flying within North America. Which I'm fine with.
When posted on jobs in Europe or Asia and occasionally Africa they always pay for business.
No use in me being exausted and out of wack on arrival