My perspective is that they are two tools that provide a similar set of functionality (admittedly, shadow provides more help in the interop department with NPM). Personally, I like Shadow and admire the work thheller is doing, but I have no reason to switch my projects to Shadow at this point in time. Hope this helps answer the question 🙂
I view figwheel as a development-ony tool to enable hot code reloading. Shadow does that too. It is also a build tool for production. I prefer vanilla cljs.main building for production.
I recently switched a project from fw-main to shadow, and had to change how some 3rd packages are used, so now my code is no longer compatible with fw-main. With fw you mostly rely on cljsjs, with shadow you use stuff directly off npm. How a certain package is invoked in both cases may or may not be source compatible.
Just something to be aware of. I still somewhat prefer figwheel-main for the familiarity and easy integration, but objectively shadow does everything that figwheel does equally good or better, and if you need a lot of third party npm packages it is the only thing that really works reliably.