3+ yards of high quality cotton is pretty heavy. Shipping is quoted to the penny by weight according to a digital postage calculator and the USPS shipping calculator. It is too much to fit in a $5.60 flat rate box, and its cheaper to mail by weight than the medium size flat rare box that runs over $10.
And your not even weighing it in the box, which has to be included too! Shipping is not cheap! Your price is reasonable for the amount of material you have listed. :)