Its more of a bad habit than actually being bad.
Global variables are saved in a file, for one thing, and it happens to get deleted quite often on accident typically when a user tries to upgrade unity/playmaker or import stuff from a different project.
But aside from that there is nothing specifically bad in using globals other than the fact that using them prolifically is often a sign of less than ideal design being in place. The cases for global variables might be the Player character in a simple Singleplayer game, some Level manager object, a proxy that holds information in variables that other objects use, a database, a manager object that is needed by many other objects, or something to that effect.
Consider if you have a trigger which takes heath away that only the player will ever really set off so you just use the player global variable when its tripped. It's really not good design to do it that way. You can't scale up with the game at all, you have a trigger that takes health away from the player and only works if the global variable is set correctly (what if the scene changes? are you maintaining that global properly?).
On the other hand consider that same trigger, but you set up a generic "trap" template which - when triggered - collects the information it needs about what tripped it, finds the Health of that object and deducts a value that you expose from it... That template can be used for anything - player traps, enemy traps, etc... So its a much better design and not a band-aid solution to your Trap system. You probably can use it widely and you aren't constrained to the Player global variable.
Thats essentially the main reason (from what I've gathered) that globals are avoided for the most part. The circumstances where a global variable is really applicable are quite limited so you're better off designing more modular systems that operate on the fly based on realtime data instead of some fixed variables that may or may not be changing and would break things if they did.
Hope that helps.