When you list one or more gems, you set a price, like you do for other items. All of these gems and sets of gems are stored on the server with the set prices.
But when you browse for gems, it would not make a ton of sense to show you all of those listings, as the items are exactly identical. It is more convenient to you (and less bandwidth-intensive for Blizzard) to just tell you the lowest price for the amount and type of gems you want, and offer you that price.
This does not mean there is not an economy for gems. The factors of supply and demand are still at work behind the scenes. If you refresh your search for gems periodically, you can see the going rate go up and down, as people offer gems at different prices, and groups of gems are sold. There is less information available about going rates and trends since you can only see what the lowest price is at any moment in time, but economic factors are still at work.
In fact, this is one possible reason that commodity auctions had to be taken offline while Blizzard fixed some things. People were running constant searches to monitor gem prices, and watch for the exact moment when someone listed some for a low price. Then they would buy it and list it for more money. It's likely that lots of people doing this causes unexpected load on the auction servers, necessitating improvements or changes to the back-end.