A character of catcode 1 has many uses in TeX's syntax. In some
cases it can be replaced by \bgroup, in others it can't.
A { is compulsory for delimiting the body of a definition, for instance,
and \bgroup can't be used.
It's also compulsory for delimiting an argument to a macro (in case
it consists of more than one token and the argument is not delimited,
see chapter 20 of the TeXbook for delimited and undelimited arguments).
Thus with
\def\macro#1{something {\it #1\/}}
you can say
\macro{fun}
but *not*
\macro\bgroup fun\egroup
By the way, this wouldn't give any error: \bgroup would be the argument
to \macro and the replacement would give
something {\it\bgroup\/}fun\egroup
and here another feature comes into play: when braces are used to
delimit groups (not macro arguments) they /can/ be replaced by
\bgroup and \egroup. So \bgroup matches } and the initial { matches
\egroup.
In other cases \bgroup can be used in place of {, for instance as
the opening brace for the argument to \lowercase, \uppercase or
an assignment such as
\toks0=\bgroup ...}
(the closing must be a real }, not \egroup, in all these cases).
A rule of thumb is that \bgroup can be used in place of { in all
situations where TeX expands tokens in order to find an opening
brace. Such is the case with \lowercase and \uppercase, but also
with the e-TeX primitives \detokenize and \unexpanded.
\bgroup can also be used with all primitives that receive an
argument which is enclosed in an implicit group: \hbox, \vbox,
\vtop, \halign, \valign, \noalign, \vadjust. For this kind of
primitives, the end of the argument can be \egroup.
This allows starting a box with a macro and finish it with another:
\def\startfunnyhbox{\hbox\bgroup...}
\def\stopfunnyhbox{...\egroup}
The question with \begingroup is completely different. This
primitive can /never/ be used as a replacement of { when an
open brace (explicit or implicit) is required. It just opens
a group of a different kind than what would be opened by {
or \bgroup when they don't appear in the context of an argument
to a primitive. A group started with { or \bgroup is called a
"simple group", while one started with \begingroup (and ended
with \endgroup) is called a "semisimple group".
Simple groups and semisimple groups cannot overlap. (There are
many other kind of groups, and none of them can overlap with
another one.)
Simple groups and semisimple groups are mostly equivalent in
normal text (horizontal or vertical mode), but they differ
in math mode: with
$a{+}b$
the group forms a subformula which is treated as an ordinary
atom; thus the output will be different from $a+b$. To the
contrary,
$a\begingroup +\endgroup b$
will result in the same output as $a+b$. A semisimple
group in math mode doesn't make a subformula, but assignments
inside it will be local anyway.
Of course this is just an introduction and much more could
be said. Refer to the TeXbook or TeX by Topic for a more
complete description.
Ciao
Enrico