Earlier quoted context omitted.
The hardware scrolling in the C64 is pretty trivial, it can only shift the screen up to 7 pixels horizontally and vertically and mask the borders a bit. If you want to do scrolling you have to move the memory contents around which costs a lot of cpu time. On a console you typically have a circular buffer and the screen is a movable window on it, so you only have to paint one row every time.
Still, it wasn't like you had to push all the pixels. You only moved 8x8 (or whatever it was) characters. So the C64 was pretty decent, actually. Also, of course you had to shift characters once every 8 pixels. I was envious as hell on my MSX, which had no pixel shifting at all.
Vertical scrolling changes the timing of the bad lines and horizontal scrolling the timing of the bitmap data fetched and this causes the image to come out at a different position.
There are a lot of creative tricks you can do with this though, especially with vertical scrolling.