Everything in engineering is a trade-off, and in this case, I think the Swift team has made the correct tradeoff. It's true that by default, methods that are never overridden are slightly less performant than if they had been marked final, but as others have pointed out, this is mitigated by whole-module optimization, and Swift is already performant enough for most applications. Many apps will never use the final keyword and still provide great performance, both in speed and power usage, to users.
There are also downsides to final by default. Most methods will be designed to be overridden, or at least designed with the assumption that they can be overridden. Forcing developers to mark these methods as non-final would create a lot of extra, rote work for developers. I see this all the time in C++ code, where developers have to painstakingly mark nearly every method on their class as virtual. In C++, non-virtual methods can still be overridden, so it's not a perfect analogy, but non-virtual methods are not available to dynamic dispatch, so it's close enough. C++ makes this decision because one of its driving philosophies is to prioritize speed of execution over other considerations. It's a legitimate philosophy, but designing for developer speed is also a legitimate philosophy.
Final by default would also end up creating a lot of bugs with third-party frameworks. For these frameworks, final methods are even more the exception than the rule. Not all methods are designed for the user to override, but rather designed so that they can be overridden if needed. If a framework author forgets to mark a method as non-final, because they don't override it themselves, users may not be able to use a framework until that oversight is corrected.