input will return a string which when you then iterate over will return you each character of the string one by one. so if you done for i in '10' i would first be set as 1, then set as 0. Instead there is no need to iterate over the string, just convert it to an int. I have updated your code and also cleaned it up a little bit.
the key here is instead of iterating over input converting each char to an int, it instead takes all of input as a string and converts it to an int.
frames = []
while len(frames) != 10:
    if len(frames) == 9:
        print("You're on the last frame")
    pin1 = int(input(f"You are on frame {len(frames)+1}/10 \nHow many pins did you knock over on your first roll?:"))
    pin2 = int(input("How many pins did you knock over on your second roll?:"))
    frames.append({
        "First roll": pin1,
        "Second roll": pin2
    })
    print(frames)
    print(f"Your rolls for this frame are, {pin1 + pin2}")
TAIL OF OUTPUT
You are on frame 9/10 
How many pins did you knock over on your first roll?:4
How many pins did you knock over on your second roll?:4
[{'First roll': 5, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}]
Your rolls for this frame are, 8
You're on the last frame
You are on frame 10/10 
How many pins did you knock over on your first roll?:5
How many pins did you knock over on your second roll?:5
[{'First roll': 5, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 4, 'Second roll': 4}, {'First roll': 5, 'Second roll': 5}]
Your rolls for this frame are, 10