I don't know why, but the push will affect the board. make a copy of the board, and no problem anymore.
import chess
import copy
board = chess.Board()
starting_position=board.fen()
new_board= copy.copy(board)
for move in board.legal_moves:
print(starting_position)
board=copy.copy(new_board)
board.set_fen(starting_position)
print(move)
board.push(move)
print(f' board pushed move {board.fen()}')
print()