The arrow functions are defined as follows:
ArrowFunction[In, Yield] :
ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In]ConciseBody[In] :
[lookahead ≠ { ] AssignmentExpression[?In]
{ FunctionBody }
And throw is a statement:
ThrowStatement[Yield] :
throw [no LineTerminator here] Expression[In, ?Yield] ;
Then the first syntax of the ConciseBody element will not work, because the AssignmentExpression does not contain statements:
AssignmentExpression :
YieldExpression
ArrowFunction
LeftHandSideExpression = AssignmentExpression
LeftHandSideExpression AssignmentOperator AssignmentExpression
BitwiseANDExpression : BitwiseANDExpression & EqualityExpression
BitwiseXORExpression : BitwiseXORExpression ^ BitwiseANDExpression
BitwiseORExpression : BitwiseORExpression | BitwiseXORExpression
, ConciseBody FunctionBody, . ThrowStatement.