I started with a RPi running a Hassbian image. I used that for several months. I really liked the idea of having the ability to VERY easily make a backup of a known good working system so in case I really screwed something up (which I did several times!) I could VERY easily be back up and running in a matter of 15 minutes.
Then I went to running HA in a manually installed virtual environment in Debian 9 on a NUC. I liked the improved performance but I REALLY missed the safety of a complete backup solution like I had on the RPi.
So ultimately I ended up running HA in Docker in Debian on the NUC using Synchthing (also in Docker) automatically backing up my config directory. If I screwed up my install of HA (which I did once) it was VERY easy to just wipe out the Docker container and rebuild it from scratch in literally seconds.
And since my OS isn’t locked down to only being able to run add-ons I can use the NUC to it’s full potential.
That said I understand that you can kind of get the best of both worlds (open OS and the benefit of Hassio add-ons) by installing Hassio in a regular Docker container too. I haven’t tried it yet because things just work the way I have it running right now.