There are a few different reasons. These are the ones that come to mind.
Trends: An example of this is that searches for “SEO” are growing smaller and being replaced by searches on “Digital Marketing”.
Stale Content: If you haven’t updated the content on your website in awhile the search engine bots will visit your website less frequently, index it less, and eventually your website will begin to lose ‘authoritativeness’ which will result in the drop of rankings.
Competition: Another website may step up the game and do a better job of ranking for the keyword phrases that you used to rank for. That is why SEO should be treated as a monthly budget just like any other advertising budget. It is not something that you do once and then think you are done. You have other competitor websites that DO NOT do this.