Proc is a MUD term, it's short for procedure, which is a bit of code that executes in some computer languages. Everquest was basically a graphical shell on top of a MUD, so a lot of slang carried on from there and continued on to other MMOs.
I definitely remember hearing terms such as "proc" and "mob" as early as 1993, because that's the year my school got the internet and almost destroyed my college career with MUD's and Usenet :)
Yup, I too remember both terms appearing in MUDs. I think every single MUD used the term mob for enemies, though the usage of proc was not quite as common, even though it was used in some MUDs.
Yep. MUDs were made of connected rooms populated with objects. In the very first MUDs, objects just sat and waited to be interacted with by players. Eventually, MUDs started supporting objects that could periodically perform programmed actions on their own initiative. One action an object could take was to move from room to room, so these became known as "mobile objects", quickly shortened to "mobs". And folks rapidly figured out that an entertaining thing for a mobile object to do was "attack the player and allow the player to attack back", so "mobs" became synonymous with "monsters".
Likewise, as others have said, "procs" were originally "procedures" that could be placed on objects. The most basic example is "use". Objects could be used on other objects -- USE SWORD ON DRAGON, USE KEY ON LOCK, etc. So when you created, say, the sword object, you could create a bit of code and attach it to the sword as its "when used" procedure. Then, when someone tried to USE SWORD ON THE DRAGON, the MUD would call this code and say "Okay, you've just been used, and the thing you've been used on is that dragon." And the code could say "Okay, that dragon appears to be something that has a 'when damaged' procedure, so I'll display a 'You slash the dragon!' message, and call that dragon object's 'when damaged' procedure and tell it that I've hit it for 3 points of damage." And the dragon object's "when damaged" procedure, in turn, could display a message about 'The dragon roars in pain!', and see that the sword object that damaged it is being held by a player object, and call more procedures designed to inflict terrible harm on that player, and so on and so on.
There was originally nothing random about procs -- if an object had a proc that applied to a particular situation, it would get called 100% of the time. But the procs themselves would often be used to implement exotic sort of effects that should only happen some of the time, so the proc itself would generate a random number and say "Okay, there's a 10% chance that I'll set the room I'm in on fire," or something like that. So "proc" gradually became associated with randomness as well as with weird things happening.