the thing is that you're filling an rectangle with that brush completely different from the path you made the brush try this
private void Draw(object sender, System.Windows.Forms.PaintEventArgs e)
{
GraphicsPath path = new GraphicsPath();
path.AddRectangle(new Rectangle(50, 50, 100, 20));
using (PathGradientBrush pgb = new PathGradientBrush(path))
{
pgb.FocusScales = new PointF(1f, 0f);
pgb.CenterColor = Color.FromArgb(255, 255, 255, 255);
pgb.SurroundColors = new Color[] { Color.FromArgb(0, 255, 255, 255) };
e.Graphics.RotateTransform(30);
e.Graphics.FillPath(pgb, path);
}
}