They have converged to the point that the APIs are extremely similar. To the point that you can add a translation layer from Vulkan to Metal (MoltenVK) and lose very little performance, for example.
The concurrency primitives are very similar. The way they all manage memory is a little different, but not horribly so.
And now that DirectX and Vulkan are both supporting SPIR-V as the shader intermediate format, things really have converged.
Just for clarity, have they actually converged to the point where the APIs are that similar? Or do you just mean they fill the same role?