This is not the common way to iterate over rows in a (Geo)DataFrame, see How to iterate over rows in a DataFrame in Pandas, Different ways to iterate over rows in Pandas Dataframe and many more.
As you and Jeremiah England I use the snap option to split the lines (Shapely issue: Floating point issue with splitter points )
import geopandas as gpd
lines = gpd.read_file("lines.shp")
print(lines)
dist geometry
0 10 LINESTRING (1.00000 2.00000, 8.00000 7.00000, ...
1 15 LINESTRING (2.09821 15.04000, 0.12726 10.25341...

With Pandas itertuples() for example
from shapely.ops import snap, split
for i, row in enumerate(lines.itertuples()):
splited = split(snap(row.geometry,row.geometry.interpolate(row.dist),0.01),row.geometry.interpolate(row.dist))
for geom in splited:
print(i, geom.wkt)
0 LINESTRING (1 2, 8 7, 6.749881714669379 6.374940857334689)
0 LINESTRING (6.749881714669379 6.374940857334689, 4 5, 2 4, 4 7, 8 5, 9 18, 1 2, 12 7, 4 5, 6 5, 4 9)
1 LINESTRING (2.098212290502795 15.04, 0.1272625698324044 10.25340782122905, 9.682839377571781 7.974770274768124)
1 LINESTRING (9.682839377571781 7.974770274768124, 9.888156424581005 7.925810055865924, 9.625363128491619 3.420782122905029, 13.43586592178771 3.664804469273745)
segs = []
distances = []
for row in lines.itertuples():
splited = split(snap(row.geometry,row.geometry.interpolate(row.dist),0.01),row.geometry.interpolate(row.dist))
for geom in splited:
segs.append(geom)
distance.append(row.dist)
l_split = gpd.GeoDataFrame({'dist':distance,'geometry': segs})
print(l_split)
dist geometry
0 10 LINESTRING (1.00000 2.00000, 8.00000 7.00000, ...
1 10 LINESTRING (6.74988 6.37494, 4.00000 5.00000, ...
2 15 LINESTRING (2.09821 15.04000, 0.12726 10.25341...
3 15 LINESTRING (9.68284 7.97477, 9.88816 7.92581, ...
or directly
cols = ['dist','geometry']
l_split = gpd.GeoDataFrame(columns=cols)
for row in tt.itertuples():
splited = split(snap(row.geometry,row.geometry.interpolate(row.dist),0.01),row.geometry.interpolate(row.dist))
for geom in splited:
l_split = l_split.append({'dist': row.dist,'geometry':j },ignore_index=True)
print(l_split)
dist geometry
0 10 LINESTRING (1.00000 2.00000, 8.00000 7.00000, ...
1 10 LINESTRING (6.74988 6.37494, 4.00000 5.00000, ...
2 15 LINESTRING (2.09821 15.04000, 0.12726 10.25341...
3 15 LINESTRING (9.68284 7.97477, 9.88816 7.92581, ...

New
for dist, geom in zip(tt.dist, tt.geometry):
splited = split(snap(geom,geom.interpolate(dist),0.01),geom.interpolate(dist))
for i in splited:
print(i.wkt)
LINESTRING (1 2, 8 7, 6.749881714669379 6.374940857334689)
LINESTRING (6.749881714669379 6.374940857334689, 4 5, 2 4, 4 7, 8 5, 9 18, 1 2, 12 7, 4 5, 6 5, 4 9)
LINESTRING (2.098212290502795 15.04, 0.1272625698324044 10.25340782122905, 9.682839377571781 7.974770274768124)
LINESTRING (9.682839377571781 7.974770274768124, 9.888156424581005 7.925810055865924, 9.625363128491619 3.420782122905029, 13.43586592178771 3.664804469273745)
And with list comprehension;
segs = [split(snap(geom,geom.interpolate(dist),0.01),geom.interpolate(dist)) for dist, geom in zip(tt.dist, tt.geometry)]