https://firebase.google.com/docs/dynamic-links/android/receive
states that
Calling getDynamicLink() retrieves the link and clears that data
The answer is in the documents:
You must call getDynamicLink() in every activity that might be launched by the link, even though the link might be available from the intent using getIntent().getData(). Calling getDynamicLink() retrieves the link and clears that data so it is only processed once by your app.
You normally call getDynamicLink() in the main activity as well as any activities launched by intent filters that match the link.