Keyword cannibalisation is when multiple pages on your site target the same or similar keywords. This leads to pages on your site competing directly against each other in the search results to rank in the high spot. In most cases, the content itself can be very different, but the keywords used within the content is where the problem arises.
Keyword cannibalisation is not the same as duplicate content, where the entire content of the page is the same or similar to another page on your site. It primarily focuses on the use of keywords within your content. Take the following as an example of keyword cannibalisation:
The top page is about strategies for growing peppers in different temperatures, while the bottom page is a ‘how-to’ guide on growing peppers in containers.
To human eyes, both pieces of content are very different in meaning and context. However, from Google’s point of view, they are both talking about the same thing. Because of this, Google struggles to decide which page is more relevant to the query, and these pages end up competing against each other in the results.