The way Cycles works is by creating a rough approximation of the final image and then cleaning up the noise over time. The more samples you set in Cycles, the more time it has to clean up the scene (but the longer it takes to finish rendering). The reason it's not cleaning up anymore for you is that you don't have the samples set high enough. You can change how many samples you use in Properties -> Render -> Samples. There are two settings, one for the viewport and one for the final render. You typically want the final render to have more samples than the viewport. If the image is too noisy, you can increase the samples, and if it takes too long, you can decrease the samples.
If you're not sure how many samples to set it to, you can set the viewport samples to 0 (aka infinity) and wait until the image clears up (and you can't move around in the scene while it's clearing up). Once it's clear enough, you can look in the top left where it says, "Path Tracing Samples", and whatever number that's at, you can set the viewport or final render to that. Note, it's okay if you have the viewport samples set to something low enough that it still is a little noisy. As long as the final render samples are high enough, the final render will look good.
(In this scene, 38 samples is good enough for the viewport, but I'll probably want the final render to be set for something like 64 or 128 just to make it nice and clear [if you look closely at the shadows, you can see a little noise])