Question: I have observed that most of the design patterns (I refer mostly from the Gang of Four book) are all based on polymorphism. That leads me to a "enlightened" moment that OOP's polymorphism is the most important feature in the paradigm.

Some of the patterns use polymorphism are: strategy, factory, bridge...

With that, I don't understand why we are not just teaching developers really good polymorphic behavior of OOP instead of overloading them with a bunch of patterns which in fact are based on polymorphism?

Answer: 
This is a red herring. *Some* languages implement this as polymorphism. Others can implement it as interfaces. Still *others* can use duck-typing. Forcing readers/students into thinking "polymorphism" doesn't actually help in all situations without also being taught the other two mechanisms, which don't exist in every language. At that point it becomes noise.
@Ignacio Vazquez-Abrams I don't think duck-typing, interface and abstract class are different interpretation of polymorphism. If a implementation can not be determined at compile time and must be defined at runtime, it is polymorphism. You can name that concept anything you like, at the end of the day it is the definition of polymorphism. This is coined late/dynamic binding albeit the same principle.