I buy fabric everywhere...Joann's, Hancock, HL, LQS, etsy, fabric.com...you name it. As for price, there s no average. Different types (cotton, knit, silk,home decor, etc.) will have different prices. Even in each category, price will vary based on quality, designer and other factors.
I very rarely buy fabric on-line. I need to see and feel it IRL. You can'y judge color, weight or drape on a monitor.
I shop a lot of places, mostly Philly's Fabric Row. I have a JoAnn's A store near me and will sometimes use them for basics or home dec if there's a sale.
Very little of the sewing I do is directed by saving money, I'm more focused at getting precisely what I want. I've sewn on everything from $80 yard (wholesale) Italian silk to $1/yd close out cotton knit.
Once I've decided, I look for a good price. I'll haggle at the stores on Fabric Row or wait for a sale at JoAnn. Online, I like this source-
I buy everywhere. I primarily work with quilter's cotton, so I can only tell you about that.
I buy from JoAnn Fabrics, Hobby Lobby, and Hancock for the no-name stuff. The good stuff I order online, usually from Hawthorne Threads. Sometimes fabric.com.
As far as price goes, the average for quilter's cotton these days seems to be around the $10 per yard mark. Sometimes its higher, sometimes a little lower.