I found a workaround through placing markers on the shape and looking at projections. Seems to work.
import Metashape
import csv
chunk = Metashape.app.document.chunk
T = chunk.transform.matrix
dir_path = "C:/"
with open(dir_path + 'shape_cameras.txt', "w") as f:
fwriter = csv.writer(f, dialect='excel-tab', lineterminator='\n', delimiter = ";")
for shape in chunk.shapes:
marker = chunk.addMarker(T.inv().mulp(shape.vertices[0]))
projections = marker.projections.items()
for proj in projections:
camera = proj[0]
vector = proj[1]
fwriter.writerow([shape.label, camera.photo.path, vector.coord.x, vector.coord.y])
chunk.remove(marker)
f.close()
print("Finished")