No, the shield spell will not stop dragon breath.
Yes, the shield spell may stop some spell attacks that use an attack roll
The shield spell increases your armor class, making it harder to hit you when someone or something makes an attack that requires an attack roll to hit you. As with any method used to increase your armor class, you are more difficult to hit, not impossible to hit.
A damage dealing effect that ignores your armor class, such as dragon breath, is not an included case for shield, neither is any spell that calls for a saving throw to avoid damage from it. (For example, the Sacred Flame cantrip, which requires a Dexterity Saving Throw1).
From the shield spell's description:
Casting Time: 1 reaction, which you take when you are hit by an attack or targeted by the magic missile spell. {snip} Until the start of your next turn, you have a +5 bonus to AC ...
What's an attack in this sense? It's an action in combat that uses a roll to beat a score on a d20 that will hit your armor class for your reaction to put the shield up.
Some spells require the caster to make an attack roll to determine whether the spell effect hits the intended target. Your attack bonus with a spell attack equals your spell casting ability modifier + your proficiency bonus. Most spells that require attack rolls involve ranged attacks. (Basic Rules p. 85)
A different class of attacks require saving throws, where armor does nothing for you.
Saving Throw Many spells specify that a target can make a saving throw to avoid some or all of a spell’s effects. The spell specifies the ability that the target uses for the save and what happens on a success or failure. (Basic Rules p. 85)
Magic Missile is a Special Case
The spell description calls out a specific feature of shield, which is that it prevents any damage from magic missile. No other specific exceptions are made. That one spell is the single specific spell attack that does not need to make an attack roll to hit you that is nullified by shield. The "why" seems to be "tradition."
- Historical note: that feature of shield was originally introduced in 1e AD&D (PHB p. 68) and has been retained throughout each edition since. When magic missile was introduced, Greyhawk, Supplement 1 to OD&D, shield (which was in the original game's core three books) did not automatically block anything. Shield originally provided a high armor class against missiles (2) and a solid armor class against melee attacks (4) for the Magic User. In that edition, lower armor class meant better protection.
No other attack that does not need an attack roll to do damage to you — fireball, lightning bolt, dragon breath — is included as an exception (nor ever was in previous editions). If the attack does not have to deal with your armor class, then the attempt to do damage to you is not blocked by shield.
Some attacks that call for an attack roll will hit you even if shield is up, such as any attack roll of a natural 20 on the d20, or any roll that is equal to or greater than your armor class. (If you had a 20 Dex and a +1 RoP, shield's +5 gives you and AC of 21 but a natural 20 still hits you).
Alternate ruling1
Based on the spell's language, a DM could rule that any attack (even if it did damage) would raise the shield and boost your AC if you used your reaction to raise the shield. For example, if a hostile tempest cleric cast sacred flame or shatter against you, and didn't kill you, that attack hitting you could trigger the shield and the volley of arrows from his band of skeletons would need to hit the higher Armor class. But that's not necessary, due to the point about the triggering attack: if, of four arrows, the first missed, and then the next two hit, the first one hitting "triggers the reaction," blocking that arrow and perhaps the next hit ... but that fourth arrow where the skeleton rolled that 20 still hit. Seems to me a zero value added improvisation.