Because a nonisolated function is not being sent itself. The function operates on a single isolation domain, which is not the isolation domain of an actor (thus: non-isolated), even when the function is defined as a method on an actor type or a type that is isolated to a global actor like @MainActor.
Functions that can be sent between isolation domains are marked with the @Sendable attribute.
Also, all methods on a struct/class are implicitly sort of @Sendable functions since they cannot close over any non-sendable local state (only self which is an implicit parameter to the function, and any globals which have to be Sendable).