It works if you Rationalize
the coordinates:
polys = Rationalize@{Polygon[{{0, -2, -2.9}, {0, -1.5, -2.65}, {10, \
-1.5, -2.65}, {10, -2, -2.9}}],
Polygon[{{0, -1.5, -2.65}, {0, 0, -2.95}, {10,
0, -2.95}, {10, -1.5, -2.65}}],
Polygon[{{0, 0, -2.95}, {0, 1.5, -2.5}, {10, 1.5, -2.5}, {10,
0, -2.95}}],
Polygon[{{0, 1.5, -2.5}, {0, 2, -3.5}, {10, 2, -3.5}, {10,
1.5, -2.5}}]};
line = Rationalize@HalfLine[{0, 1, 0}, {1, 0, -.52}];
surface = RegionUnion[polys];
Solve[And[Element[{x, y, z}, line], Element[{x, y, z}, surface]], {x,
y, z}]