I always thought of them as synonyms, but googling around found that some people see them as different, with the distinctions changing depending on who you ask.
Is there a formal distinction between them? If so, what's the difference?
Well every arpeggio is a broken chord, but not every broken chord is an arpeggio.
A broken chord is just as it sounds: a chord that is broken up in some way, shape, or form where you are not playing the the full chord at once.
An arpeggio is a specific way of playing a broken chord that has a defined texture to it. While the definition is not a very strict, it is typically characterized by playing one note of a chord at a time that aren't sustained in a pattern. While you may see an arpeggio where two or more notes are played at once or some notes may overlap in a sustain like manner this is more an exception then the norm. An arpeggio is also typically rhythmically straight or if not repeated in a pattern. It's really the only way instruments that can only play one note at a time can play a broken chord.
Some may say that there is a defined pattern to an arpeggio, but that's not the case. This is due to how musician are typically introduced to the concept of an arpeggio though excessive books where they play up and down the notes of a chord and think every arpeggio is the same.
As an example let's look at a standard open E major chord on a guitar.
If I just play all the notes at the same time then I'm just playing a chord. If I play one note of the chord after another and don't let them all ring out then I am playing an arpeggio. If I play the lower 3 strings then the top 3 strings it's just a broken chord since it really doesn't have the texture we are looking for in arpeggio. If I play one note at a time, but let them ring this is also just a broken chord for the same reason. If I play the notes one at time, but play the last two notes at the same time it will depend on the exact execution, but most of the time it would be an arpeggio.
Broken chords are in essence just a type of arpeggiation the difference being the order in which the notes are played.
This is more like an arpeggio.
And this is something more like a broken chord.
An arpeggio literally sounds, as its etymology suggests, like a harp. The notes run into each other for a rippling effect and the device has become a standard technique in program music used to suggest wind, water, or any smoothly continuous action, and also in film music to depict any dream-like blurring of reality. Arpeggios are represented on the page by a single chord preceded by a vertical wavy-like character. A broken chord, in contrast, is a sequence of separate notes, so written, which clearly outline a chord. Indeed, it could be more accurately termed a melodicized chord. Consider the guitar introduction to the Beatles' song, "I Feel Fine:" Wikipedia characterizes the passage as an "arpeggiated riff." But it is actually a well-defined sequence of broken chords falling predictably through a secondary progression. A Beatles' song with a true (and literal) arpeggiation may be found in the accompaniment of "She's Leaving Home."
ABRSM seems to think there is a difference in that broken chords are played, in the earlier exams, as 1,3,5,3,5,8,5,8,10,8, then in reverse. Or using a 4 note pattern. Sorry, I don't have exam books to hand till tomorrow!. Whereas arpeggios go 1,3,5,8,5,3,1, or 1,3,5,8,10,12,15,12,10,8,5,3,1 for two octaves, etc. The sequence would appear to be different, though the notes involved are the same three, in major and minor. Obviously with diminished and 6ths and 7ths, 4 notes come into play, so to speak.
So there seems to be an official difference at least.
"Arpeggio" is literally "like a harp". Notes are not stopped before playing the next note. If you take a look how a harp plays a multi-octave chord or run, you have to alternate hands and play the fingers one by one (to give the inactive hand time to move to its next position without interrupting the flow of the arpeggiated phrase).
When arpeggiating on a bowed string instrument (when done in a continuous back-and-forth motion, you might see an actual "arpeggio" instruction in the score but otherwise you have to arpeggiate even single chords with more than two notes on most modern strings), you move the bow across strings in an unstaggered smooth motion, sounding two strings simultaneously temporarily. A broken chord, in contrast, will try sounding only one note at once and will have the bow either stop (with or without direction change) or bounce in order to achieve that.
Arpeggio as a type of broken chord. cf alberti bass - also a broken chord.
Broken chords are just what it sounds like, a chord that isn't a block chord. Arpeggios are a specific type of broken chord where it goes from highest to lowest or vice versa in pitch. These are both examples of arpeggios:
In this case, you have stacatto arpeggiation ascending before the triplet.
Here you have arpeggios both ascending and descending
There is another version of broken chords that is very common. That is Alberti bass. Instead of going Low Middle High or vice versa, it goes Low High Middle High.
This is a very basic example of Alberti bass. In essence this could be inverted so it goes High Low Middle Low, or there could be more than 3 notes in the alberti bass sort of like this:
Root Octave Third Octave Fifth Octave
In short, broken chord is an ambiguous term for any way that a block chord can be broken up and arpeggio is a specific type of broken chord.
Using a three-note chord as an example, an arpeggio would refer to all three notes sounding separately, in any order. However, usually an arpeggio includes all the notes of a chord before repeating one. An arpeggio could go C-E-G-E or C-E-G-C but wouldn't normally be C-E-C-E-G. A broken chord would have two of the three notes sounding together and the third sounding separately (eg. C,E/G or G,C/E) In certain settings, broken chord notes may sound separately but still give a broken chord effect. If I played C-E-C-E-G-E-G-E, it would sound broken because my ear would associate two of the pitches together at a time. The notes of an arpeggiated chord of more than three notes would still all sound separately, but the chord could be broken with different combinations. For example, a four-note chord could be broken as one note separate then three together, or two notes then two notes, or one note then one note then two notes, etc. Many classical piano sonatas and sonatinas use arpeggiated chords in the form the Alberti bass. Chopin waltzes make use of a broken chord accompaniment.