After adding @rendermode InteractiveServer, the data now loads properly with virtualization and scrolling.
Explanation:
Virtualization requires interactivity between the client and server. Without explicitly setting the render mode, Blazor renders the component as static HTML (non-interactive). By using @rendermode InteractiveServer, the component is rendered as an interactive server-side Blazor component, which supports virtualization and dynamic data loading.
Hope this helps someone else facing the same issue!