Why dont' nodes change the block version number when the nonce overflows? After computing 4 billion nonces, the miner is supposed to update the merkle root.

Why don't they choose a new nonce and assign it to the block version number and begin again?

It would save time and improve an ASIC.
Block versions are modified as part of other use cases, such as BIP 9, which use specific bits in the block version to signal for specific proposed updates to the protocol. Incrementing the block version and treating it as a nonce would prevent this kind of use.

Moreover, using a version field as a source of randomness (not really, but similar enough when talking about nonces) is generally a bad idea - version fields serve an important role in helping other nodes on the network determine how to decode and process a block, or other entity within the blockchain. Turning this into an effectively random number for the sake of saving a handful of cycles would just be a plain bad design choice.

Recomputing the merkle tree by just modifying a single tx within is a relatively fast operation regardless, since you only have to recompute the nodes affected by that tx.