However, I noticed the default "Grand Piano" etc. in Garageband have
very poor sound and expression capability.
When it comes to virtual pianos, there are two schools of thought. Sample based virtual pianos are collections of recordings of real pianos. Physical modeling virtual pianos use sophisticated mathematical models to emulate some or all of the physical interactions within a real piano.
Most virtual pianos are made out of samples. The worst ones use a single sample that is pitch shifted up and down the keyboard. An improvement is to use one or more samples per octave, and shift that sample up and down within its octave. Even better is to use a single sample per key. Still better than that is multiple samples per key, with each sample recorded at a different velocity.
Like most virtual pianos, Garage Band's pianos are sample based.
Depending on your aesthetic needs, a sampled piano may do the job. But if you are interested in the subtle interactions between notes, samples won't do the job. Samples can't resonate sympathetically. They don't change slightly as the piano slowly slips out of tune. They don't respond to humidity.
Physical modeling pianos attempt to address these deficiencies by modeling some or all of the physics of a piano. All this modeling is computationally expensive, so it is only recently that the physical models have begun to approach the quality of an actual piano. The least expensive way to play with a physical modeling piano is Pianoteq Play.