This is due to a bug in fsck.
    
     # fsck.vfat -v -a -w /dev/sda1

The above command automatically write changes to disk.

*The dirty bit is set and cleared in the kernel, when mounting and unmounting a device;*