Well.. one is current controlled and the other is voltage controlled.
Another point to make is that it's very easy to open a BJT half-ish, with a MOSFET you got an equation that looks a little bit like this: \$I_{DS}=K×(V_{GS}-V_{TH})^2\$. There's a square in there. For the BJT it's just \$I_{CE}=I_{BE}×\beta\$ (in saturated region). For the MOSFET it means that when the sound goes up, on the output you get the square of that... which is not really what you want, you want to linearly amplify the sound, like the BJT does.
You want this \$Y=K×X\$, not \$Y=K×X^2\$
If you however use some feedback then you can make it linear... like using an op-amp. Most modern op-amps, especially those of modest specifications, will be MOSFET-based, if you just make a feedback with resistors then the amplification will be linear, which is what you want, and then it will work nearly identical to the class B amplifier.
This is the schematic of some MOSFET based op-amp. It's too much hassle needed to linearize a class B amplifier.
But as you can see, the \$M_{PO}\$ and \$M_{no}\$ forms a class B amplifier stage, there's just so much fuzz in the foreground to linearize it. For an op-amp where everything is in a small package, no problem. All the transistors receive roughly the same \$K\$ since it's all in one batch. If you however need to use all the individual components in packages then there will be some mismatch with the \$K\$'s (in the equation above) because the components were all made in different batches. With different \$K\$ in the above equations, everything will be... mismatched and you'll end up with a dysfunctional op-amp which will make your class B amplifier dysfunctional.