Because Expression- this is a class, but IEnumerable- this is an interface. And classes are not covariant, but interfaces and delegates.
This means that you cannot convert Expression<A>to Expression<B>, even if B is the base class of A.
So if this line:
() => (from c in queryable select c)
returns
Func<IQueryable<int>>
it can be converted to
Func<IEnumerable<int>>
but if you already have
Expression<Func<IQueryable<int>>>
it cannot be converted to
Expression<Func<IEnumerable<int>>>