It works on a weighted RNG system and the default info can be found in the stonehearth.smod at /services/server/mining/mining_loot_tables.json. The probability of any result is equal to the weight of that result divided by the sum of all the weights in that block type.
In that file:
Grass gives nothing, always.
Dirt has weightings of 100 = nothing, 1 = stone, 1 = clay.
Rock has weightings of 25 = nothing, 0.5 = stone, 0.1 = copper ore, 0.1 = tin ore, 0.07 = iron ore, 0.07 = lump of coal, 0.05 = silver ore, 0.01 = gold ore.
And on top of that, biomes can change those defaults, so in temperate where there is no changes, it is exactly like the values tuhalu posted, but in the desert which has custom table, the dirt for example has a higher chance for clay drops, bumped to 4.
These means that in temperate there is around 1% chance of a mined dirt drop a clay, while in desert it is around 4%