There are quite a few reasons.
One is that VexRiscv is written in SpinalHDL and VexRiscv is a much faster, more complete and more configurable Risc-V implementation than the ones I was using before (mainly picorv32).
So I started using that with the Murax SoC that came with it.
I had previously used Scala and liked SpinalHDL, so started adding support for lots of peripherals in Murax, and implemented an Arduino system with it.
The author of SpinalHDL, VexRiscv and Murax, Charles Papon, told me about his new SaxonSoc project, so I moved to that and converted my drivers for all the peripherals to that. It was a much cleaner, more configurable and more scalable SoC implementation than Murax.
I have not looked at Migen a lot, but I prefer SpinalHDL to it. Domain-specific languages (DSLs) are easier to do in scala than python, so in SpinalHDL you feel you are using a proper HDL, rather than something bolted on to the language.
Although I have used python quite a bit, I am not very keen on it as a language.
If you are using Migen and Litex, you still need a Risc-V processor. The one that seems to be used most is VexRiscv!
But as VexRiscV is written in SpinalHDL, the pre-generated Verilog version of Vexriscv, VexRiscv-verilog is used. That is a pre-generated version of VexRiscv with a wishbone bus and a limited set of configurations.
I prefer to use VexRiscv directly, and you can then configure it how you want.
The combination of Migen, Litex and VexRiscV is powerful and will run Linux. Litex supports DDR SDRAM and a lot of peripherals, but even that combination does not support everything you need for a SoC.
The authors of Fomu used that combination, but need execute-in-place (XIP) as well, so they used the spiomemio component from PicoSoc.
So with that solution, you end up with a large range of technologies from many projects, which is a lot to learn.
With SaxonSoc, everything is by the same author and in the same language and seems to make a simpler and more coherent system to me. It had a way to catch up with Migen/Litex for running Linux but is getting there quickly with DDR SDRAM currently being added.
So I think SaxonSoc is the simpler and more powerful solution. It is flexible enough to produce a range of SoCs from tiny ones for up5k devices, right up to powerful Linux ones.