The constraints are applied when the type parameter is specified. A type has not been specified for K even though K is being specified for U. As U requires its type to be a reference type, the compiler is looking to confirm that K is indeed a reference type, but it cannot. Therefore, you need to explicitly state that it will be.
The specification states in section 4.4.4:
For each where clause, the type argument A that corresponds to the named type parameter is checked against each constraint...
and later:
A compile-time error occurs if one or more of a type parameter’s constraints are not satisfied by the given type arguments.
Since type parameters are not inherited, constraints are never inherited either.
This last point indicates that K will not inherit the constraints from T.
Update
While my conclusions appear correct, my evidence is a little shaky as was clarified in a now deleted response from Eric Lippert's response. There, Eric stated that the correct part of the specification is:
A type parameter is known to be a
reference type if it has the reference
type constraint or its effective base
class is not object or
System.ValueType
.