Your code is flawed and not updating the geometry correctly. You need to build a NEW POLYGON and explicitly state it has Z values and insert that back into the FeatureClass. The following code updated my single part test data as expected:
import arcpy
fc = r"C:\Scratch\fGDB_Scratch.gdb\fcTest"
# Get Spatial Reference of dataset
desc = arcpy.Describe(fc)
sr = desc.spatialReference
with arcpy.da.UpdateCursor(fc, ["SHAPE@"]) as cursor:
for row in cursor:
# Get Geometry
geom = row[0]
# Create an empty array object
arr = arcpy.Array()
# Read points, if Z is found to be zero reset it to 1
for part in geom:
for pnt in part:
if pnt.Z == 0:
pnt.Z = 1.0
# Add updated point to Array
arr.add(pnt)
# Construct new polygon geometry from array whilst setting spatial reference and indicating it has Z
newpoly = arcpy.Polygon(arr,Nonesr,True)
#Update row
cursor.updateRow([newpoly])