The ‘problem’ is known and documented. I don't believe it's a problem at all, actually, for I can't see how
\bal
a&=b\\
c&<d
\eal
is clearer input than
\begin{align}
a&=b\\
c&<d
\end{align}
To the contrary, I firmly believe that the latter syntax is much better than the former, because it clearly marks the document. Good editors provide fast shortcuts for inputting the latter syntax with as few keystrokes as possible.
Let's see why your definition doesn't work. The align environment must absorb all of its contents before starting to typeset it, since it needs to do two passes over the material: the first pass is for measuring it, the second one for doing the real typesetting. This is the key for proper placement of the material and of the equation numbers.
With \newcommand{\bal}{\begingroup\align\@ifstar{\nonumber}{}} you start align, but LaTeX will never see the end of it, because it doesn't expand tokens while absorbing the material, so \eal will be absorbed and not recognized as the end of align.
You could define
\makeatletter
\newcommand{\bal}{\@ifstar{\@bals}{\@bal}}
\def\@bals#1\eal{\begin{align*}#1\end{align*}}
\def\@bal#1\eal{\begin{align}#1\end{align}}
\makeatletter
so that the required tokens are found, but it's clumsy and, as I said, it doesn't provide no benefit whatsoever, while obfuscating the code.
The issue doesn't show with equation, because this environment doesn't do complex tasks for measuring its contents. But the same arguments apply: there's no gain in inputting
\beq
a=b
\eeq
instead of
\begin{equation}
a=b
\end{equation}
and nobody will ever be able to convince me of the contrary.
Similarly, one can't define a new environment based on align by
\newenvironment{myalign}
{<something>\begin{align}}
{\end{align}}
where <something> is any code one wants to be executed for modifying align's behavior. The problem is exactly the same; but this will work:
\newenvironment{myalign}
{<something>\align}
{\endalign}
because \align captures the current environment's name and will use \end{myalign} as the end mark for the material to be gathered.
alignliterally looks for\end{align}. In general it is a bad idea to write using shortcuts like these as it makes the code much harder to read. – daleif Feb 27 '13 at 10:55alignfor a one line display; useequation, instead. Those shorthands may seem useful, but they aren't: they make the LaTeX document less readable and searchable. Good editors provide keyboard shortcuts that make easy inputting those environments. – egreg Feb 27 '13 at 11:33equationenvironment, but doesn't work foralignenvironment. – Vahid Damanafshan Feb 27 '13 at 13:33