This is mostly an addendum to @fredsbend answer, which appears to list reasonable causes, but ignores the technical cost aspect. The other answer lists the technical cause, but doesn't explain it in detail.
In addition to other valid causes listed, Bitcoin is a scarce resource and getting it recently has required huge investments in hardware -- reflecting on price.
Look at the two graphs (from Wikipedia).
This is how difficult -- in terms of computing power, meaning hardware costs and electricity costs -- it has been to mine bitcoins over years:
This is how many total bitcoins have been made since the start of btc era:
Might not seem that different... until you realize that the difficulty graph... is on logarithmic scale! So... in 2017 it requires approximately one trillion times more computing power to mine the same amount as in 2009.
For contrast, the bitcoin production has been at around 2 million bitcoins per year, for all those years.
As you can see, the bitcoin mining is slowing down, and this is happening despite huge investment into hardware done by organized bitcoin mining entities.
This is by design. The bitcoin system is designed to produce 1 bitcoin in roughly 6 hours regardless of how many computers are thrown at it.
If you could use a home computer at start of bitcoin and mine 1 bitcoin a day on it, nowadays, you need to use specialized hardware costing thousands of dollars and pay huge sums in electricity costs in order to mine the same 1 bitcoin in a day, because there are so many much more mining operations, trying to mine more.
Since bitcoin mining was started on industrial scale somewhat recently, the cost to mine has skyrocketed comparatively recently as well and this has been reflected in the actual bitcoin exchange rate.
So, as the more hardware anyone throws at mining, the harder it becomes for him and everyone else extra hardware is used mostly in order to drive out smaller players and keep the general ability to mine, rather than to increase the mining speed.
All of these things drive the price up. While you could mine a bitcoin home it was no big deal. Now to make 1 bitcoin you have to invest a lot.
Half a year ago, a user decided to experiment on his home computer to see how much he needed to mine:
I did it just as an experiment, I'm not that stupid. I know even with
an Antminer S9 you'll struggle to earn real amounts.
thought I'd share this if anyone is curious. BTW I know there are
calculators out there but I wanted to do a real life test. And sooo
after 33 hours of mining at full performance of a MacBook Pro I
earned... 0.00000001 BTC.
TL;DR Mining, you would have to run a
MacBook Pro for 3 straight years at full performance in order to earn
USD$0.02 (at present value).
Last year a friend and I were considering buying a couple specialized rigs, running on off-the-shelf powerful computers and using extra (gaming) graphics cards for number crunching. As we didn't get on the train fast enough, the graphic cards were bought up by bitcoin mining organizations en masse.