Dragon Teeth can be found on Bracken, Dracos, and Dragons. Bracken will drop one on occasion, however they are much more common on Dracos and Dragons. Dragon Teeth are by far the rarest reagent, therefore they cost around 1000 gold pieces each. You can also trade 20 Skulls at the Lerilin potion shop for a Dragon Tooth and 50 experience points (the 200 skulls that yield the 10 dragon teeth required for the Persian Rug quest will yield 500 experience plus the 200 experience gained for the rug). The persian rug is required to complete the Flaming Sword quest and earn and additional 500 experience points. As such, hunting Skeletons is the easiest way to get dragon teeth (though probably not the fastest).