Let's take a look at both, and maybe you can learn more about the advantages of each.
Z-Crystals
One key advantage is that Z-Moves can be used on any Pokémon. Let's take Naganadel(no idea if this is spelled correctly). Giving it the Dragonium-Z will negate the special attack drop of Draco Meteor and possibly earn you a very important kill on a Pokémon. Other Pokémon like Z-Crystals if:
- They don't want recoil damage from Life Orb, a Z-Crystal alternative
- You want to revenge kill a mon.
- You want to turn a mediocre coverage move into a Z-Move that has OHKO potential
In addition, Z-Crystals can even be used to bolster status moves. Z-Conversion and Z-Celebrate are two examples of Z-Moves powering up your Pokémon rather than going for a high base power attack.
Mega Stones
Mega Stones are compatible only with a select few of Pokémon, it's not hard to get one Pokémon on your team that can mega evolve. Mega Stones can be game-changing. Instead of providing one turn of power, you get a permanent stat boost. Types and abilities sometimes change as well. In some instances, giving a Pokémon a mega stone changes its role in competitive battling. For example, Charizard, well, wasn't ever seen as a competitively viable Pokémon - until Gen6. Mega Charizard X quickly became a good physical sweeper and Mega Charizard Y became much more threatening, boasting high special attack.
What's Better?
It's impossible to tell which is better - it depends on the Pokémon and maybe the rest of your team as well. Some Pokémon rely on a Z-Crystal to land a powerful revenge kill, while most Pokémon with a mega evolution prefer to mega evolve. For Salamence, giving it the Salamencite is better. M-Salamence is amazing, as it can sweep with Dragon Dance, Body Slam, and other moves. Breakneck Blitz deals only 5 more damage, and Mega Salamence can dominate for more than just one turn. Garchomp, however, has a lousy mega evolution, so Groundium-Z would be a perfect held item. Like I said, it depends.