Why do phones need an OTA update to support VoLTE for certain carriers but they work out of the box for other VoLTE carriers?
VOLTE is a standard. And like all standards the devil lies in details of implementation. Carriers may choose different implementation for various reasons

Section 2.2.1 of PDF document here
offers reasons as to why implementation differs and hence updates are needed


  ....VoLTE interoperability issues might be related to EPS bearer set up, proprietary simplification of SIP call flows, operator specific IP headers, different security configurations IPsec, AKA etc.


You have detailed technical reasons explained subsequently in the document