Is there an established single-letter abbreviation for Pokemon energy types?
There is an established system in the TCG, which has fewer types: (corresponding video game types)
[C]olorless (Normal, Flying, older cards also Dragon)
[F]ighting (Fighting, Rock, Ground)
[L]ightning (Electric)
[G]rass (Grass, Bug, older cards also Poison)
[P]sychic (Psychic, Ghost, Poison)
[M]etal (Steel)
[W]ater (Water, Ice)
[D]arkness (Dark)
Fi[R]e (Fire)
Drago[N] (Dragon)
Fair[Y] (Fairy)
While there's no widely agreed upon similar system for the full type list we find in the video games (mainly because there's no use for it outside of Pokémon Go, where nicknames are private), we can make one based on the TCG one. Since the TCG uses some type names that differ from the VG names, there will be some deviations, we also have to navigate around additional collisions. Here's the system I use:
[N]ormal
Fi[R]e
[W]ater
[G]rass
[E]lectric
[i]ce (lower case because that avoids confusing it with lower case l)
[F]ighting
P[O]ison
Gro[U]nd
F[L]ying
[P]sychic
[B]ug
Roc[K]
G[H]ost
Dr[A]gon
[D]ark
[S]teel
Fair[Y]
As you can see, there are quite a few collisions, and while many of the abbreviations that use a letter in the word attempt to take one that's at least rare (like Rock's K and Ground's U), it doesn't always work (Dragon, for instance, manages to have 3 letters another type starts with, one that fits Poison best because it's actually in there twice, and one that fits Fire best because it's the one used in the TCG, too). However, all in-word-letters are never at the start of a type, which is why Dragon's N was changed from the TCG version. This and L becoming Flying instead of Lightning (which is called Electric in the VG and makes much more sense as an E) are the only ones that don't mean the same thing as in the TCG version.
No, there is no established abbreviation system for types.