Well there is another design pattern that is basically the Strategy pattern using inheritance, the Template Method pattern.
They both work well, but the Strategy Pattern can be more flexible. If you wish to change the behaviour with the Template Method pattern then you need to create a new object. This isn't always convenient because there may be a set-up cost to that, it may interrupt work that was being done, and it often isn't convenient to make sure all references to the old instance are replaced with the new instance.
With the Strategy pattern you just need to create a new strategy and replace the old strategy with it, which can be done in just one place. This follows the OO design principle of Favour Composition over Inheritance.
See
https://en.m.wikipedia.org/wiki/Composition_over_inheritance
As with all design patterns there is not one correct solution. A design pattern covers a whole class of related solutions, and the pros and cons of each solution is very much related to the context. If you change the context then the solution that best fits will be different.