I tried to refactor your code and clean it up in some parts.
Read code's comments and adjust it to fit your needs.
EDIT: I assume that your code is placed in sheet1 otherwise you'd need to check if the Target range of the event doesn't intersect with the range that is changed in this line: evalCellSheet2.Offset(0, 1).Value = evalCellSheet1.Offset(0, 1).Value
Private Sub Worksheet_Change(ByVal Target As Range)
' Give meaningful names to your variables
Dim evalSheet1 As Worksheet
Dim evalSheet2 As Worksheet
' Try not to use variable names that may conflict with Excel/VBA objects, properties, etc,
Dim evalCellSheet1 As Range
Dim evalCellSheet2 As Range
Dim lastRowSheet1 As Long
Dim lastRowSheet2 As Long
' Fully qualify objects
Set evalSheet1 = ThisWorkbook.Sheets("Sheet1")
Set evalSheet2 = ThisWorkbook.Sheets("Sheet2")
' Reuse objects you have already set
lastRowSheet1 = evalSheet1.Cells(evalSheet1.Rows.Count, 1).End(xlUp).Row
lastRowSheet2 = evalSheet2.Cells(evalSheet2.Rows.Count, 1).End(xlUp).Row
For Each evalCellSheet2 In evalSheet2.Range("A1:A" & lastRowSheet2)
For Each evalCellSheet1 In Sheets("Sheet1").Range("A1:A" & lastRowSheet1)
If evalCellSheet2.Value = evalCellSheet1.Value Then
' As you're changing values, disable events and then reenable it
Application.EnableEvents = False
evalCellSheet2.Offset(0, 1).Value = evalCellSheet1.Offset(0, 1).Value
Application.EnableEvents = True
End If
Next evalCellSheet1
Next evalCellSheet2
End Sub
Let me know if it works