There are a few noticeable differences between them. Other than the ones mentioned above, it is worth highlighting that fold() is able to operate on collections that are empty without producing an error.
reduce() will throw an error saying Bad state: No element whereas fold() will return a non-null value back, using the initial value passed onto it as a fallback return value.