Razor Pages is used for server side web applications, just like in the good old days.
Blazor is aiming to provide an alternative to popular JavaScript frameworks (like
Biggest difference is that razor pages renders on the server and sends whole pages to the client. Blazor server-side only sends the DOM changes over a signalr connection. So there are no page reloads. You need asp.net core running on the server for this technique.
Blazor webassembly is totally client side. Changes to the DOM are applied 'locally', this can be hosted from a static webserver.