Because you use
the page is load twice.
Explained at ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 9:
render the component with the specified parameters.
a marker where the component should be rendered interactively by the Blazor Server app.
Statically prerender the component along with a marker to indicate the component should later be rendered interactively by the Blazor Server app.
The main problem with ServerPrerendered is that it loads twice ,so your data layer code is also executed twice. Server mode is just ok, may be a bit slower.