As someone who owns the Amazon Fire stick, a Roku 3, an Apple TV and the Amazon Fire set-top box itself.... part of the problem is that each of these devices has at least 1 unique feature.
The AppleTV box is the only one that's going to support AirPlay, for example. And for many people, that alone is what sells the box. (My office has one in each conference room so people can easily put Keynote presentations up on the TV without having to run a long video cable to the laptop to do it.) It's also an obvious choice if you're someone who purchased TV shows or movies from the iTunes store, or wants to rent them from it.
The Amazon Fire Stick is great as a low-price option, but having used one for a while on my kid's TV in the basement -- we find it regularly freezes up or has issues losing the wi-fi connection and needs to be reset. It's only a matter of unplugging it from its HDMI port for 10 seconds or so and plugging it back in to fix, but it's still an annoyance. It's acceptable for her situation, but I would want something more stable for a nice home theater type setup in a living room, on a good quality TV.
I like the Roku 3, but I'm still a little hesitant to recommend it as "the best choice". For starters, I know way too many people who had one die on them. I think the quality of the hardware in them is a bit suspect. Mine has been working fine for quite a while now, but I have had a number of times where I had to unplug the power to the back of it and plug it back in because it froze up. (Again, for an appliance like this with no moving parts, these freezes/hangs shouldn't really happen. This wouldn't have been acceptable if people's DVD player or VCR just froze and needed to be unplugged/plugged back in every so often to get it going again.) To its credit though, it was one of the first set-top boxes of its type to support the remote as a game controller.
The regular Amazon Fire set-top box has been pretty reliable (no real freezes requiring hard reboots I can recall, to date) and I like the voice command capabilities in the remote for it. Like the Roku - you can install a Plex client on it too, which can justify its existence by itself if one is a big Plex user with a good library set up on a Plex server in the house. Unfortunately, it tries to do fancy control of the TV over the HDMI port and our TV and sound-bar combo doesn't quite get along with that. (Apparently, it tries to send commands to power on the TV when it's powered on, and to switch the TV's input to a specific one. Cool concept but it just gets things messed up in our case.)
Can someone explain to me why in the world anyone would buy an overpriced Apple TV? I used to think Roku was king, but when the $40 Amazon TV Fire Stick came out, that all changed. (And it goes on sale quite often for much less).
I guess some could argue that the Amazon Stick is Android, and they might not like that, but just based off of consuming media alone (netflix, movie rentals, hulu,etc....), the stick is really blazing fast, affordable, and overall really user friendly.