From man 4 random
on a RHEL 5 box:
When read, the /dev/random device will only return random bytes within the estimated number of bits of noise in the entropy pool.
I get files of size 213 bytes on that machine. Back to man 4 random:
When read, /dev/urandom device will return as many bytes as are requested.
I get 2048 bytes from every invocation of dd if=/dev/urandom of=rand bs=1K count=2
I conclude that the difference is due to how much entropy your machine generates between invocations of dd if=/dev/random ...