Your problem is that the C# language does not chain user-defined implicit conversions.
Lambda expressions are untyped expressions that have implicit conversions to the (potentially infinite) set of compatible delegate & expression tree types. (see §6.5 of the spec)
You cannot invoke both that implicit conversion and the user-defined implicit conversion from a delegate type to your own type implicitly.
Instead, you can explicitly create a typed delegate:
Lambda<TIn, TOut> l = new Func<TIn, TOUt>(o => ... );
You could also ask the C# language team to define a syntax for user-defined implicit conversions from method groups or lambdas to any type.