Microcontroller memory limitations
Several reasons.  First, microcontrollers are generally not built with the same bleeding edge processes as the DRAM and Flash for your computer, so they do not take advantage of technological advance to the same extent.  These bleeding edge processes do have disadvantages, including I/O pin voltage tolerance (the upper limit for bleeding edge processes might be 1.8 or 1.2 volts, in contrast with 5 or 3.3 volts for many microcontrollers), special core supply voltages (1.0 or even 0.9 volts), higher leakage current, etc.  Second, microcontrollers are generally built on one piece of silicon, so the process cannot be optimized for logic, DRAM, and Flash at the same time.  Microcontrollers also generally use SRAM instead of DRAM, which takes up a lot more space but consumes less power and does not require refreshing.  Also, the flash used in microcontrollers is usually the more robust and less dense NOR flash.  This type of flash memory can be read out directly with no post-processing.  It also supports more read and write cycles.  Most SSDs, flash drives, etc. use NAND flash.  This type of flash memory is not as robust as NOR flash, especially when capacity-multiplying tricks such as multilevel cells are used.  The raw flash memory is actually prone to error quite often and the cells do not have a particularly long life, so lots of extra processing is required to correct the errors and perform wear-levelling.  This requires lots of additional logic and consumes more power.  

See also: Why do microcontrollers have so little RAM?

and: Precise differences between DRAM and CMOS processes