] changes the way expr is stored internally, to try and minimize the amount of memory used.
] tries to minimize the memory used to store all expressions.
Share works by sharing the storage of common subexpressions between different parts of an expression, or different expressions.
Using Share will never affect the results you get from Mathematica. It may, however, reduce the amount of memory used, and in many cases also the amount of time taken.
See the Mathematica book: Section 2.13.4.
See also: MemoryInUse, ByteCount.
Related package: Utilities`MemoryConserve`.
Here is the amount of memory in use at the time this expression was evaluated.
This creates a very large data structure of interpolating functions.
You can see that almost 3/4-megabyte of memory has been taken up in computing and then storing this result.
When you run Share, it reports back how much memory was recovered.
Here is the amount of memory in use after running Share.