It depends on how you define what "Transient" means. The Simple Injector documentation, for instance, states:
Simple Injector considers Transient registrations to be lasting for only a short time; temporary, i.e. short lived and not reused. For that reason, Simple Injector prevents the injection of Transient components into Singleton consumers as they are expected to be longer lived, which would otherwise result in Lifestyle Mismatches.
But other DI Containers use a different definition for "Transient." The .NET Core DI Container (MS.DI), for instance, advises your transient registrations to be "lightweight, stateless services."
As they are assumed stateless, it is safe to inject them into consumers with any other lifetime, as long as they don’t have any stateful (sub) dependencies of their own. “Stateful,” in the context of MS.DI, typically means a scoped dependency. MS.DI's definition of transient is identical to what Autofac calls Instance Per Dependency. IMO, Autofac's naming is more correct, because conceptually, there is a big difference between the two definitions of transient, and I believe most DI Containers follow the "lasting for only a short time; temporary" definition.
As long as your Transient component is stateless and as long as that component contains no stateful dependencies, there is no harm in injecting it into a singleton (or scoped) consumer. Injecting such stateless component into a singleton, however, still makes that component long lived, which is something completely different than being short lived. As Simple Injector doesn't know whether or not your component contains state, it considers all transients to be short lived and, therefore, warns you about injecting transients into singletons.