Honestly, your preference is going to be driven by your use case, but constrained by your hardware. Do you have hardware which is conducive to passthrough? Can you get away with simply dual booting? Do you even want a copy of Windows on your box?
Dual booting can work well, but it is inconvenient because you are limited to one OS at a time. For instance, if I’m in the middle of struggling with a warchief in Shadow of Mordor, the last thing that I want to do is to reboot into Linux in order to access a document that I may need.
With passthrough, you have access to both OS’s simultaneously and you avoid any potential game incompatibility, since the game is running on an actual instance of genuine Windows. You also achieve near bare metal performance. It’s the next best thing for game performance to running on a Windows box. If this solution interests you, you’ve come to the right place, as several how-to’s can be found here.
Running native Windows games on Linux will likely always be a compromise, because even if all of the possible system calls can be anticipated, there will still be some overhead due to translation. But, if I can get 60+ fps without booting up Windows, I’m deliriously happy to make that compromise, especially since Linux tends to be more stable.
It seems to me that I used Lutris to run UPlay, in order to claim a free, promotional game from a GPU purchase. Apart from that, I don’t have any experience with it. I would suggest, however, that If you are a Linux guy/gal who wishes to run the odd Windows game from time to time, there is no such thing as a one size fits all solution. Some games may run fine under one, or more methods, but choke, if it even runs at all, on other methods. I’m afraid that experimentation with your specific games, on your specific hardware will be the best solution. That said, there are some resources, such as https://www.protondb.com/ which may assist you in your search.