Disk scheduling and process scheduling
Disk scheduling has an additional physical constraint.  Accelerating and moving the disk head takes times in the msec range.  Wikipedia says average seek times are around 10 msec (to move halfway across the radius of the disk) and the time to move just to the adjacent track is about .5 msec.  Thus an algorithm like FIFO might be reasonable for process scheduling because it would deliver about the same compute throughput as any other scheduling algorithm, but FIFO would be a disaster for disk scheduling.

You are not correct that the primary objective of either disk scheduling or process scheduling is "to reduce monopolies".  In real time process scheduling, for example, the primary objective is to make sure that processes with lower priority never run when there is a higher priority process available.

There are things that are worse than monopolies on workstations too.  If you are time sharing between some number of processes that are consuming so much VM that you are thrashing then no-one is getting any service, and you are better off being less fair (swapping out processes until the ones that are left can get some CPU service and hopefully finish.)

Finally, most real operating systems try to give priority to "interactive" processes.  But you can't figure out which processes are interactive until you've seen them running.  So you use an algorithm like Corbato's Multi-level feedback queue.

Edit: I forgot to mention  that disk scheduling algorithms are often variants of the elevator scheduling algorithm.  This moves the disk head in one direction, doing requests in the order that they lie on the disk.  The objective in the elevator algorithm is to maximize throughput while putting a bound on unfairness.