Did you happen to buy any dirt from the donor shop? If so, the dirt there won't grow grass on it, and doesn't stack with normal dirt. If you place it and break it though, it does... so i'm not sure
Yeah, normal dirt and the dirt at the donorshop have different Data Values which means they are different versions of the same blocks. For example, white wool has an ID of 35, but orange wool has an ID of 35:1. The "1" in that is the data value. Similarly, dirt has a set of data values attached to it. Normal dirt has an ID of 3, but "Course Dirt", or the dirt that doesn't grow grass, has an ID of 3:1 and Podzol has an ID of 3:2.
Because the Data Values (DVs) are different, the blocks won't stack. If you press f3 + h, you can see the ID numbers of the blocks over which your mouse is hovering in your inventory. For dirt, it will say "#0003/0", or Course Dirt will say "#0003/1". Again, because of this seemingly insignificant difference, the different kinds of dirts will NOT stack. They act as and are different kinds of blocks.