Polygons are generalizable to hardware more easily than voxels.
Polygons can have arbitrary precision easily, while voxels require like n^whatever operations for a whatever size world to have a certain precision.
If you're using classic "Minecraft" style voxels then you palletize and don't have angled slopes. Sauerbraten has angled slopes and palettized faces, but it converts from a sparse voxel octree to a polygon map and uses that.
Polygons are easier philosophically to modify, that is, if you want a asy, mountain, you just pull up and subdivide and slope it out. For an octree/voxel representation, you have to recurse into each leaf node and manage to get your algorithm doing what it needs to do at each leaf node. Something worth noting is a Russki or someone made a script for Sauerbraten which lets you saved and load sub-cube maps, which can place like a whole building into any map without needing to place entities or make it yourself.
I believe polygons have worse collision detection when you get up in detail, as it requires detection with only surfaces nearby or some other helpful algorithms, while with true voxels, all it requires is to see whether two things exist in the same voxel space or something. I've never seen it work in practice however.
Voxels make for easier map editing, IMHO. I've never seen a realtime polygon editing map other than a few terrain editing games, but Sauers is incredible, though it uses lightmaps and limited dynamic lighting.
I think depending on encoding and things, polygon maps can also be much much larger in size, especially if you specify each surfaces texture instead of palletizing or proceduralizing. Sauer's maps are xboxhueg, and I love it.
>decently large trem map: 20mb, indoors, limited detail
>largest Sauer map included by default: 5mb, outside, great landscaping and environmental
Whatever voxel representation you use, it's harder to modify than a polygon representation. Modify a single vertex that belongs to three faces? Step 1. Get face coords 2. Apply change 3. write to memory 4. do collision detection
Voxels: recurse down the proper leaf nodes (proper as defined by calculation from whatever algorithm GETS you the proper voxels), apply the operations which alter the voxels and the neabry voxels (as voxels are a representation of volume not surface), write back to the voxelmap, then do collision detection