Let's assume you do metrics every 10s. If you write it to a file it's up to your service to write it in that frequency. If the app skips an filebeat will not tell you as it only harvests the event. Also if your app is under load and it goes up to 15s, filebeat will still just keep reading it. With accessing an endpoint from metricbeat on a predefined schedule, it's up to metricbeat to decide and configure the schedule. If the endpoint is not available, you get an error reported by metricbeat that something is not as expected. If you write to file, you can replay historical data.
Above I try to describe the difference and it depends on your use my. My general recommendation is if you are looking for only a snapshot of the data every x seconds, I would go with MB. If you more look for logs of events with different schedules FB could be a solution. But subscribing to events API is now also supported by MB modules, as the above is not either or but a continuum.