I find the pricing difference to be the opposite of what you describe. Locally I can get a 500gb drive for $63 and a 1000gb drive for $68
Or another model 1000gb $68, 2000gb $98
Data is stored on a platter inside the HDD. A plater is not that different to a CD except the data is stored magnetically.
When a manufacturer makes a 500gb drive they may fit the 500gb on a single platter. The cost breakdown may be $40 for the metalic casing, read/write heads and circuitry and $10 for the platter = $50
When they take the same HDD model and increase to 1000gb all they need to do is add another platter = $60
However it eventaully gets to the point where adding another platter (maybe the maximum number of platters is around 4) is not practical and so the manufacturer must invest in research and development to increase data density of each platter resulting in a more advanced model of HDD with 2000gb per platter. There are also premium pricing for what is considered a better designed/more durable models.
Flash storage like SD card or SSD works differently, no moving parts or platters. Flash storage still requires effort in manufacturing to increase the density with which data is stored to advance in storage size and ofcourse flash storage comes in various forms some of which are better quality and more costly to manufacture.
Edit: If you want an explanation of the large price difference you see on Amazon it is as follows:
250gb - So old now its being cleared out at bargin prices, if not sold soon will literally be sent to scrap
1000gb - Currently a reasonable size - most of cost in the casing etc, probably has 1 * 1000gb platter
2000,3000gb - 2 or 3 platters, Only a small extra cost to add extra platter to the drive
4000gb - A premium is charged because some people will pay it for that extra platter, probably has the greatest price markup from manufacture cost.