If you look at the .gltf file in a text editor and look at the min/max values for the cube vertex buffers, you can see that for the Z coordinate, min=-0.01 and max=0.0 :
{
"bufferView": 0,
"byteOffset": 0,
"componentType": 5126,
"count": 4,
"max": [0.0, 0.01, 0.0],
"min": [0.0, 0.0, -0.01],
"type": "VEC3"
},
{
"bufferView": 0,
"byteOffset": 48,
"componentType": 5126,
"count": 4,
"max": [0.01, 0.01, 0.0],
"min": [0.0, 0.0, 0.0],
"type": "VEC3"
},
{
"bufferView": 0,
"byteOffset": 96,
"componentType": 5126,
"count": 36,
"max": [0.01, 0.01, 0.0],
"min": [0.0, 0.01, -0.01],
"type": "VEC3"
},
{
"bufferView": 0,
"byteOffset": 528,
"componentType": 5126,
"count": 4,
"max": [0.01, 0.01, -0.01],
"min": [0.0, 0.0, -0.01],
"type": "VEC3"
},
{
"bufferView": 0,
"byteOffset": 576,
"componentType": 5126,
"count": 4,
"max": [0.01, 0.0, 0.0],
"min": [0.0, 0.0, -0.01],
"type": "VEC3"
},
{
"bufferView": 0,
"byteOffset": 624,
"componentType": 5126,
"count": 4,
"max": [0.01, 0.01, 0.0],
"min": [0.01, 0.0, -0.01],
"type": "VEC3"
},
{
"bufferView": 0,
"byteOffset": 672,
"componentType": 5126,
"count": 75,
"max": [0.007, 0.01, -0.003],
"min": [0.003, 0.005, -0.007],
"type": "VEC3"
},
{
"bufferView": 0,
"byteOffset": 1572,
"componentType": 5126,
"count": 41,
"max": [0.007, 0.005, -0.0030014676378983804],
"min": [0.003005868397632519, 0.005, -0.0069985323621016199],
"type": "VEC3"
},
So what the sandbox/PG displays is correct. If it’s different in Blender, it means that Blender is exporting modified data when you export to .gltf: perhaps there are options at export time that you can change to avoid this?