When I first started sewing items to wear, I would search out the bargains and discounted fabrics to save as much money as possible. Often times it turned out the so-called bargains were actually just cheap fabric to begin with. This would result in poor-fitting or downright ugly finished pieces. Hours of my time were lost with nothing beautiful to show for the effort.
To create garments or craft projects that you can be truly proud of, you must invest in quality materials. In the end, isn't your time with it? Good fabric can even make a novice seamstress look better than their skill level.
A $2 per yard piece of cotton flannel may seem attractive when you buy it, but after pre-shrinking and sewing up your shirt or pajamas you might not be pleased with the end result.
Typically cheap cottons are imported from third-world countries and produced by people not being paid a living wage. Additionally, the fibers used are sub-par so they will shrink, pill, and often feel scratchy against the skin. So you have to ask yourself, is it really worth the $10 or $20 you save? It all depends on what you want your finished item to look and feel like.
I'm not saying you won't occasionally find high quality fabric on sale. When you do, go for it! But be aware of where your textiles come from and be sure it will reward the effort you put into your DIY project.