The term became more popular with NodeJS and Javascript frameworks but it basically means, assembling or compiling the HTML and other various resources on the server side first; then spitting it out to the client.
Before frameworks and libraries and such - you could say most programming languages did this - and still do to a certain point. In PHP for example (cause that's what I know best) - you could do echo "<div>hello world</div>"; on the server and that html would be outputted to the client - server side rendered.
"Rendering" has taken on a much more complex form now though - now, rendering means to determine what is needed; build the components and send that to the client. So in the case of auth - the server might determine the logged in user is an Admin - compile and "render" an Admin menu item and send that to the client.
React and other frameworks rely heavy on this (not a react pro) - they do most of the heavy lifting on the server side and the client gets just what it needs to interact with the page / site.
You could consider it a separation of duties, but IMO, not in a traditional sense. It can be more efficient for the client as your taking the load off of the client and putting it on the server, but it can also be more expensive as now the server is responsible for more heavy lifting (and your paying for the server) and the client is doing less (your not paying for the clients power)
Julian Aiup