What is the difference between normal filter and contextual filter in views?
In simplified language to understand.

Normal Filter: Normal filter takes the fixed data from the available data. For example, you have created a views with Content: Title which will show all the title of nodes available on the site. But if you provide the Filter: Content type(Articles), then it will show only the Node title of Articles. Hence here filter, filters all data and gives only data which belong to Articles.  So this is the Normal filter.

Contextual Filter: Now, Sometimes, you do not have the fixed filter value, suppose, Logged-in-user, value available in URL, Author name of currently loaded page. So, this kind of filter values are dynamic and keep changing, so Contextual filter provides the way to solve this. To visualize this you can see the following UI image of contextual filter. Which has mainly two section.

1. WHEN THE FILTER VALUE IS NOT AVAILABLE

2. WHEN THE FILTER VALUE IS AVAILABLE OR DEFAULT IS PROVIDED.

Now, in the first option WHEN THE FILTER VALUE IS NOT AVAILABLE itself defines what is Contextual filter is- So, Contextual filter SAYS to you,
"I can fetch value from following listed areas(as you can see in image), you select from  where shall I fetch. And I will take it as Filter value."

Example to understand Contextual filter:
Now your site has the Taxonomy terms- BMW, AUDI, HONDA.
So, in fixed value filter you can take only one value. But, what you will do when that value is keep on changing based on browsing.

So, suppose, I select contextual filter and select Taxonomy term ID from URL So, if URL will have BMW is will take BMW as filter, If URL will have AUDI it will take AUDI as filter value. So, filter value keep on changing here, hence Contextual filter provides the way for this.