That is why they make so many different chips. If your program will fit in 32K, why pay for 1M? It's a right tool for the job deal. I use Tiny 85 chips for some projects. 1K SRAM, 8K flash. Just right for small, low pin count projects and they are cheaper (cost and board space). And you may be surprised how much you can do with 32K.
The memory is internal to the microprocessor chip. There is a trade-off between the amount of memory and the cost. If you want more memory, choose a different Arduino or a different platform, but be prepared to pay for it.
groundFungus:
Define expandable memory. If you add a SD card, is that expanded memory? Or external SPI or I2C EEPROM? Or do you mean more program memory?
More program memory.
Or is there an Arduino board that already has more program memory?
quamikazee:
Why not at least one measly MegaByte of Dynamic memory?
Everything in engineering design involves tradeoffs. Some of them in single-chip processor design include cost, complexity, and power dissipation. Dynamic memory would increase all three due to the need for a memory controller.
There are other boards in the "Arduino ecosystem" besides those mentioned. Some of them very powerful (and proportionally more complex). Check out ESP8266, ESP32, and the various Teensy boards.
You probably should take a look at what the various boards can right out of the box before worrying about extra memory. Without a bloated OS, they run very leanly and efficiently.
The Apollo Guidance Computer had 2K words of RAM and 36K words of program space (16-bit words). Shows what can be done if you use resources efficiently.