I found that with Mathematica 10 one can use the region functions/distance+watershed to achieve something similar but much faster. Something along these lines can generate ~1 million voxels in a couple of seconds in my machine:
voxelify[region_?RegionQ, res_?NumericQ] :=
Module[{f, bounds, boxsize, voxsize, data, d2},
f = RegionDistance[region];
bounds = RegionBounds[region];
boxsize = -Subtract @@ # & /@ bounds;
voxsize = Max[boxsize]/res;
data = ParallelArray[f[{##}] &, Round[boxsize/voxsize], bounds];
d2 = HeavisideTheta[data - voxsize];
2 - ReplaceAll[WatershedComponents[Image3D[1 - d2]], {0 -> 2}]
]
And then
spikey = Import["ExampleData/spikey.stl", "Graphics3D"];"MeshRegion"];
Image3D[voxelify[spikey, 100]]