Can anyone in simple terms explain what expansion cost means?
When your contract writes to memory, you pay for the costs associated with the number of bytes written.
However, if you are writing to an area of memory that hasn't been written to before, there is an associated additional cost with using it for the first time. Think of it as an additional tax levied for using a pristine piece of memory.
From the "Storage, Memory and the Stack" section of the Solidity docs:
Memory is expanded by a word (256-bit), when accessing (either reading
or writing) a previously untouched memory word (i.e. any offset within
a word). At the time of expansion, the cost in gas must be paid.
Memory is more costly the larger it grows (it scales quadratically).
(To add to this: it scales linearly for the first 724 bytes [Appendix H, Yellow Paper] and quadratically after that.)