Possibly here (the white shirts come in a grey option), but they're all done by neck size, so maybe they're all too big for a 4-year old. You'll have to measure. (have linked to boys' stuff, but you didn't specify - is it for a DS or DD?)
My sympathies, until this year john Lewis and M and S did them but everyone seems to have stopped doing grey. Some of the uniform shops do them (search grey school shirts) but they are way more expensive than the other sources. We are a state primary, I don't think you can continue to justify a uniform that costs well above the norm but having said that the girls at our school wear a green and white check shirt and you can definately only get that at a uniform shop!
I wouldn't object too much about getting it from the school's uniform shop (apart from the fact that they are hideously priced ) but for some stupid reason they don't do them small enough for my son (11" is the smallest there too).