Were the Romans better prepared? We're the Arabs not interested? Were the Sassanians in a more vulnerable position?
I definitely haven't read enough about Persia, so I won't comment on that, but I can quote a few extracts from recent books about what historians think the reasons are. Hopefully someone else familiar with the literature on this topic can come and talk about their views on this.
From Peter Sarris' Empires of Faith: The Fall of Rome to the Rise of Islam, 500-700 (2011):
In Persia, as we have seen, political circles in Ctesiphon had gone into meltdown as a result of Heraclius’ victorious campaign of 628. Heraclius’ daring descent into Persian territory and his ravaging of the lands to the north of Ctesiphon may well have done lasting damage to the agricultural resources and administration of a region that had been the economic powerhouse of the Sasanian state. Political paralysis and administrative chaos may also have critically limited the ability of the Persian authorities to respond to the Arab threat.
From Parvaneh Pourshariati's Decline and Fall of the Sasanian Empire: The Sasanian-Parthian Confederacy and the Arab Conquest of Iran (2008):
The interregnum period of 628–632 was a time of utter confusion. As troops had been dispersed in the wake of the Byzantine–Sasanian war, resulting in the formation of three distinct armies of the Sasanian empire, and as the Parsıg–Pahlav rivalry had intensified, the perfect power vacuum had been created in Syria, in Iraq, as well as on the Iranian plateau. The Arabs naturally took advantage of this chaotic situation. [...]
The Parthians played a crucial role in the demise of the Sasanians through their agreement with the Arabs, although some among them, such as the Mihrans or the Karins, put up fierce resistance. In a sense, from the Arsacid through the Umayyad period, the dynamics among the Pahlav dynastic families, and between each of these and the central authorities, had not changed. The crucial dimension of the cooperation of the Pahlav who came to terms with the Arabs— as it was worked into the treatises they made with the conquerors—was the understanding that they would continue to control their realm after the collapse of the Sasanian empire.
From Robert Hoyland's In God’s Path: The Arab Conquests and the Creation of an Islamic Empire (2014):
In the Persian realm, the proverbial situation had come true: the head had been severed and consequently the body floundered. With Yazdgird on the run and the economic powerhouse of southern Iraq in Arab hands, the Persian Empire ceased to function as an integral entity. The local chiefs and nobles of Iran, wearied by three decades of warfare and civil strife and unnerved by the Arab successes, began to negotiate separate agreements with the conquerors that would preserve as much of their authority and wealth as possible. Families were often pitted against one another, sometimes victims of an Arab policy of divide and rule and sometimes using the Arabs to settle old scores. For example, in return for being left in power in Media (northwest Iran), Khurrazad offered to help the Arabs capture Rayy, now a suburb of modern Tehran, but once a proud and ancient city that served as the seat of the noble family of Mihran. The incumbent head of this family had connived in the murder of Khurrazad’s father. There was, therefore, bad blood between the two families, and Khurrazad got his revenge by showing Arab forces a secret way into Rayy, which allowed them to surprise the city’s defenders. They looted and ransacked the houses of the Mihranids, who were afforded no mercy, but gave safe passage to the family of Khurrazad, who was allowed a free hand to establish himself and his offspring in the city. For the Arabs, as for many conquerors before and after them, such pragmatic deals made good sense in lands difficult to access, the subjugation of which would demand substantial resources and manpower.
In short, political fragmentation, particularly in the period between 628 and 632, proved to be devastating to the military capability of the Persian empire. After a few major defeats and the loss of Iraq, it also become impossible for the Persians to muster a powerful force, just as their nobles sensed which way the wind was turning and began to make deals with the newly ascendant Arabs.
As for why the Roman empire survived, there were obviously many reasons, but I think one of the most important is political stability. Heraclius lived until 641, so the emperor was still able to draw upon the reservoir of goodwill from his victory in 628 over the Persians despite more recent failures against the Arabs. Though the 630s is often characterised as a time of military failure, there were also successes, admittedly on a much smaller scale. Egypt was for example kept safe between 636 and 639 by the payment of a tribute to the Arabs, likewise for the Mesopotamian frontier c.638. These arrangements were of course temporary, but it bought time. Heraclius would later withdraw his armies from the Levant altogether, choosing instead to focus on defending Anatolia and Egypt, pursuing a defensive strategy in regions suited to it. This was quite different to the Persian experience, as their heartland, Iraq, was right next to Arabia. For the Romans, although the Arab occupations of the Levant and later Egypt were major losses, their political centre in Constantinople was never threatened, which meant that the bureaucracy continued to function and the elite were still able to maintain a facade of normality.
Heraclius' death and the ensuing power struggle did damage the empire, especially as it led to the loss of Egypt by 642. The Romans however still possessed mountainous frontiers in Anatolia and Armenia, which impeded Arab advances and indeed caused a number of upsets (which contrasts neatly with Arab victories in the east brought about by making deals with those in defensible positions, as illustrated above in the extracts I quoted). The Romans at this point also retained naval supremacy in the eastern Mediterranean, which allowed them to hold small islands like Arwad right next to Syria and to threaten Arab territories at will. This changed in 649, as an Arab fleet was finally created and indeed even won a few important victories over Roman forces, but the 650s also saw the coming of age of a new emperor, Constans II, who as I explained here was actually a quite talented ruler damned by later sources as a cruel and useless tyrant. Vigorous campaigning and a great deal of luck defeated the great Arab offensives of the 650s, culminating in the withdrawal of the Arab army during the siege of Constantinople in 654. This was followed by Roman successes in Armenia as well. Combined with internal pressures within the caliphate and other reverses, the Arabs began to fight amongst themselves in 656, relieving the pressure on the Romans.
The 660s however saw the Arabs emerge from the civil war stronger than ever, but the Romans once again survived. Though in 667 a Roman general revolted and joined the Arabs on a march to Constantinople, indeed even besieging the capital in 668, a crisis that led to the assassination of Constans II and a revolt in Sicily, New Rome remained impervious to its besiegers. At this point the new emperor paid tribute to the caliph and spent a few years consolidating his control over his diminished empire, which might seem counter-intuitive to the Arabs' interests, but with the Arabs unable to take Constantinople, they could not realistically destroy the empire, though raids did continue in this period. Tribute had also been given by the Romans before between c.650 and 653, as well as by the Arabs to the Romans during their civil war from 658 onwards, so we should be careful about characterising this period as a time consumed only with external warfare. There were many other factors for rulers to consider, so a continuous push for Constantinople simply wasn't realistic. Instead, advantages were sought until it became possible for a decisive offensive - in the seventh century, the perfect opportunity simply never arrived for the Arabs.