UPDATE:
This answer refers to the original un-edited and ambiguous question, so is based on an interpretation about the use of different frameworks for different aspects of web development; it doesn't address the use frameworks which compete against each other in the same space.
Given the substantial rewording, this answer may no longer be a good fit for the question, however its content remains mostly un-edited on the basis that it relates closely enough to the topic and is hopefully still useful and relevant to other readers.
How the web works
In a nutshell, the web is built around the concept of web servers which serve data and content in response to inbound HTTP requests, and web browsers which send HTTP requests to a web server in order to obtain data and content from an HTTP response.
Furthermore, HTTP is Connectionless. That means that the web browser does not hold any kind of connection or socket with a web server. Browsers know nothing about web servers. Web servers know nothing about Browsers. The two act completely independently of each other.
A browser typically expects a response when it sends a request but it has no idea what is listening at the URL it has sent the request to.
A server receiving a request has no idea what sent that request - it just picks up that request, sends back a response, and then forgets about the request altogether.
That naturally means you always have two problems to solve - what happens in the web browser and what happens on the web server.
Web Server technologies
In the early days of the web, nearly all web content was just plain static HTML - usually a mix of text and images and not much else. Web development tended to mean just churning out loads of static HTML documents which were stored in a folder structure, hosted on a simple HTTP server.
Most modern, sophisticated web apps do not do this. Servers rarely store plain static HTML pages any more; content tends to be generated on-the-fly. If that content is to be generated on the server, then you'd either use a Content Management System like WordPress, or write a web service using a framework like Django or Flask.
If you're writing a web server, any code which runs on that server generally has the full capabilities of languages like Python at its disposal, as long as the server itself has permissions (e.g. talking to a database, accessing the server filesystem, accessing network resources, etc.)
Client-side technologies
HTML does not need to be generated on the server. It can be generated within the browser instead. Most sophisticated web apps have advanced, dynamic, programmatic behaviour running directly within the browser itself.
However, a browser is not a run-time environment. Therefore a web browser cannot use languages like Python, Java or C# to build dynamic UI behaviour.
A browser is just an application which happens to have a built-in scripting engine; the capabilities of web browser scripting are limited to being able to work with web content displayed in the browser (real time creation/manipulation of HTML elements), to be able to work with events and user inputs in real-time, and to be able to work with HTTP requests/responses.
So to build dynamic behaviour which runs within the browser, you need ECMAScript (formerly known as JavaScript). However, just as modern Desktop/Mobile GUI frameworks in C#/Java exist for helping developers write GUI apps (along with patterns like MVC and MVVM), the same thing exists with client-side frameworks like Angular and Vue.
These frameworks solve the same problem for web developers that GUI frameworks solved for Windows/*Nix desktop developers 15-20 years ago; providing high-level abstractions for web developers to build the rich, interactive, dynamic behaviour which actually runs within the user's browser. Otherwise, you'd be faced with direct, "low-level" manipulation of raw HTML elements using ECMAScript instead (which is fine if you just want to do something very simple, but for sophisticated web apps it's very difficult)
Aesthetics
The content for most websites/apps often has very sleek, stylish aesthetics. Unless you want your websites to look like they belong in 1995, you should avoid the default styles.
However, unless you wish to spend a great deal of time designing your own look/feel aesthetics with raw CSS and getting it to work consistently with lots of different browsers/devices, you are much better off using a simple CSS framework like Bootstrap which can give you a neat/clean/modern/sleek look-and-feel with minimal effort and without needing to spend very much time at all learning how to do it.
Why Use Frameworks
Different frameworks exist to solve different problems and work with different aspects of the web. There is no requirement to use any framework, but modern web development has moved a long way beyond plain old JavaScript and static HTML pages with Times New Roman fonts.
Ultimately they exist because people expect their experience to be far more sophisticated and to look/feel a lot better than it did 20+ years ago, and because trying to build a web app which meets peoples' expectations will either involve using something like WordPress (which involves minimal technical expertise), or it involves using those frameworks.