They have low resolution screens (854x480 usually), horrible cameras, often no front camera, 512 Mb or so of ram, and barely even function. Clearly the Fire Phone can't compete with top end phones, but compared to the garbage that sells under $100 is night and day.
I do understand why some folks would not use this phone at any cost, knowing that most people carry only one phone. I, for instance, would not use iPhone 6 unless I get paid. The Fire OS is similarly locked and closed, and there is an unmistakable presence of Amazon on the phone's OS trying to sell their services. And for those who rely heavily on Google services may miss out some key functionalities such as Google Now.
I have been kind of bored of the Nexus 4/5 after 2 years, and the Nexus 6 threw a monkey wrench on my plan to get a phablet this year. I long ago would have gotten the Note 4 which, IMO, is the best phablet ever made, had I known ahead the drama unfolded surrounding the Nexus 6's launch.
I ended up impulsing on Xperia Z Ultra and Fire Phone, and I am satisfied with both purchases. Hardware-wise, Fire Phone feels like an updated Nexus 5 in every regard minus 1080p. Better screen, speaker, call quality, camera, and better build quality, etc. Most of its negatives are on the software side, but like I said I am sort of bored of Nexus experience after 2 years (during which I enjoyed it immensely) and wanted to try something different. For an effective price of $100, the hardware is an unbeatable value.
Fire phone would not have been my first Android phone, and it probably won't be my long-term platform (without root access at least), but I am very satisfied with the hardware so far. I just do not think this is the phone for everyone, in spit of the bargain aspect of hardware, because of its software.