Bwanamukubwa,
No, it's because OpenSCAD does not do curved arcs, circles, spheres or cylinders. It models a curve as a set of "short" line segments. So a cylinder is modeled as an n-sided prism, where you have parameters that control "n" either as number of sides ($fn), angle ($fa), or as a dimension ($fsomthing-but-dang-I-forget-which-letter-because-I'm-on-my-other-PC). For example, to make a hex-shaped recess for a nut, just subtract (difference { } operation) a "cylinder with six sides" from the body of the object.
My understanding (which could be wrong) is that STLs are made up of triangles. If that's so, then there really are no "curves". Of course, for OpenSCAD to export a "cylinder" to STL, the underlying software should be pretty darn simple, as the conversion from an n-sided cylinder (prism) to a set of triangles is trivial.
The Marlin firmware has a capability to move the extruder in (simulated, since it's all done in steps) arcs, using G-codes G2 and G3. Some slicers have the ability to detect when the designer "intended" a circular arc type of movement (by the huge number of short linear moves that form it) and replace the bunch of moves for an arc with a single G2 or G3. But some have noted that this substitution can go awry, for example, when making a small hexagonal hole --- if the segments are short enough, the slicer "thinks" you want to draw a cylindrical hole and substitutes when it shouldn't. (Note that Simplify3D Creator had G2/G3 substitution up through version 1.1.5, but removed it 2.0.0 for this reason.)
Basically: everything in OpenSCAD is linear -- arcs, circles, cylinders and spheres use "estimated" arcs -- but on the plus side, you can control how finely the arcs are "digitized" with parameters.
Reminds me, I need to make some 11-sided volume knobs for my boss's guitar amplifier. It's louder that way.
Dale