I change my wheel bearing grease with each change of season. I suppose I don't go quite that often on front wheels, crank bearings, etc. But a one-speed, coaster brake rear hub, motorized, wants clean grease often.
Here's something else I do. I don't know if the experts recommend it, but I like the results. I lube my chains with Armor-All. Chains stay much cleaner. They 'swivel' freely. They stay rust free.
For that matter, I use Armor-All as a general duty cleaner and preservative for my bike. I discovered pretty early that keeping it clean and good looking is pretty labor intensive. I lack the time for that. So I just spray everything down and let it sit for an hour or so before riding.
I aim for weekly, but I don't manage to keep that average up. If I did, though, I think that even my bottom bracket wouldn't be all gunked up with road grime.