‘False’ is a string, $false is a boolean. (The $ character, in this context, indicates a variable named false.)
The way the -eq (and other comparison operators) work is that if the two types aren’t the same, PowerShell will try to convert the value on the right to the same type as the value on the left. (In this case, it’ll try to convert a string into a boolean).
When it comes to strings, empty strings are treated as $false, and any non-empty string becomes $true. So, while it may look odd:
$true -eq 'False'
Will report True, because ‘False’ is a non-empty string.
In the other direction:
'False' -eq $true
This will be false, because now the boolean $true is being converted into a string (which happens to just be the word ‘True’.)